diff --git a/azure-functions-archetype/pom.xml b/azure-functions-archetype/pom.xml index 6e0fd66..9eb0461 100644 --- a/azure-functions-archetype/pom.xml +++ b/azure-functions-archetype/pom.xml @@ -6,7 +6,7 @@ com.microsoft.azure azure-functions-archetype - 1.3 + 1.4 jar Maven Archetype for Azure Functions diff --git a/azure-functions-archetype/src/main/resources/archetype-resources/pom.xml b/azure-functions-archetype/src/main/resources/archetype-resources/pom.xml index 2a636db..85c7ea5 100644 --- a/azure-functions-archetype/src/main/resources/archetype-resources/pom.xml +++ b/azure-functions-archetype/src/main/resources/archetype-resources/pom.xml @@ -51,7 +51,7 @@ com.microsoft.azure azure-functions-maven-plugin - 0.1.7 + 0.1.8 diff --git a/azure-functions-archetype/src/main/resources/archetype-resources/src/main/java/Function.java b/azure-functions-archetype/src/main/resources/archetype-resources/src/main/java/Function.java index def24cf..1104070 100644 --- a/azure-functions-archetype/src/main/resources/archetype-resources/src/main/java/Function.java +++ b/azure-functions-archetype/src/main/resources/archetype-resources/src/main/java/Function.java @@ -1,5 +1,6 @@ package $package; +import java.util.*; import com.microsoft.azure.serverless.functions.annotation.*; import com.microsoft.azure.serverless.functions.*; @@ -13,20 +14,14 @@ public class Function { * 2. curl {your host}/api/hello?name=HTTP%20Query */ @FunctionName("hello") - public HttpResponseMessage hello(@HttpTrigger(name = "req", methods = {"get", "post"}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage request, - final ExecutionContext context) { + public HttpResponseMessage hello( + @HttpTrigger(name = "req", methods = {"get", "post"}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request, + final ExecutionContext context) { context.getLogger().info("Java HTTP trigger processed a request."); // Parse query parameter - String name = request.getQueryParameters().get("name").toString(); - - if (name == null) { - // Get request body - Object body = request.getBody(); - if (body != null) { - name = body.toString(); - } - } + String query = request.getQueryParameters().get("name"); + String name = request.getBody().orElse(query); if (name == null) { return request.createResponse(400, "Please pass a name on the query string or in the request body"); diff --git a/azure-functions-archetype/src/main/resources/archetype-resources/src/test/java/FunctionTest.java b/azure-functions-archetype/src/main/resources/archetype-resources/src/test/java/FunctionTest.java index 6674044..8746452 100644 --- a/azure-functions-archetype/src/main/resources/archetype-resources/src/test/java/FunctionTest.java +++ b/azure-functions-archetype/src/main/resources/archetype-resources/src/test/java/FunctionTest.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.logging.Logger; import static org.junit.Assert.assertSame; @@ -24,12 +25,15 @@ public class FunctionTest { @Test public void testHello() throws Exception { // Setup - final HttpRequestMessage req = mock(HttpRequestMessage.class); + final HttpRequestMessage> req = mock(HttpRequestMessage.class); final Map queryParams = new HashMap<>(); queryParams.put("name", "Azure"); doReturn(queryParams).when(req).getQueryParameters(); + final Optional queryBody = Optional.empty(); + doReturn(queryBody).when(req).getBody(); + final HttpResponseMessage res = mock(HttpResponseMessage.class); doReturn(res).when(req).createResponse(anyInt(), anyString()); diff --git a/pom.xml b/pom.xml index cf223a9..37b1484 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.microsoft.azure azure-maven-archetypes - 1.3 + 1.4 pom Maven Archetypes for Azure Maven Archetypes for Microsoft Azure services