Skip to content

Commit 08f2348

Browse files
authored
Merge pull request #481 from Azure/luczhan/javaname
Add name to java binding interface
2 parents fb1db50 + 37f6904 commit 08f2348

21 files changed

+84
-4
lines changed

java-library/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.microsoft.azure.functions</groupId>
66
<artifactId>azure-functions-java-library-sql</artifactId>
7-
<version>0.1.0</version> <!-- Update the dependency version in samples-java/pom.xml too if this version is updated. -->
7+
<version>0.1.1</version> <!-- Update the dependency version in samples-java/pom.xml too if this version is updated. -->
88
<packaging>jar</packaging>
99

1010
<parent>

java-library/src/main/java/com/microsoft/azure/functions/sql/annotation/SQLInput.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,13 @@
1515

1616
@Retention(RetentionPolicy.RUNTIME)
1717
@Target(ElementType.PARAMETER)
18-
@CustomBinding(direction = "in", name = "sql", type = "sql")
18+
@CustomBinding(direction = "in", name = "", type = "sql")
1919
public @interface SQLInput {
20+
/**
21+
* The variable name used in function.json.
22+
*/
23+
String name();
24+
2025
/**
2126
* Query string or name of stored procedure to be run.
2227
*/

java-library/src/main/java/com/microsoft/azure/functions/sql/annotation/SQLOutput.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,13 @@
1616

1717
@Retention(RetentionPolicy.RUNTIME)
1818
@Target({ ElementType.PARAMETER, ElementType.METHOD })
19-
@CustomBinding(direction = "out", name = "sql", type = "sql")
19+
@CustomBinding(direction = "out", name = "", type = "sql")
2020
public @interface SQLOutput {
21+
/**
22+
* The variable name used in function.json.
23+
*/
24+
String name();
25+
2126
/**
2227
* Name of the table to upsert data to.
2328
*/

samples/samples-java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<dependency>
2828
<groupId>com.microsoft.azure.functions</groupId>
2929
<artifactId>azure-functions-java-library-sql</artifactId>
30-
<version>0.1.0</version>
30+
<version>0.1.1</version>
3131
</dependency>
3232

3333
<dependency>

samples/samples-java/src/main/java/com/function/AddProduct.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public HttpResponseMessage run(
3333
route = "addproduct")
3434
HttpRequestMessage<Optional<String>> request,
3535
@SQLOutput(
36+
name = "product",
3637
commandText = "Products",
3738
connectionStringSetting = "SqlConnectionString")
3839
OutputBinding<Product> product) throws JsonParseException, JsonMappingException, IOException {

samples/samples-java/src/main/java/com/function/AddProductParams.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public HttpResponseMessage run(
2929
route = "addproduct-params")
3030
HttpRequestMessage<Optional<String>> request,
3131
@SQLOutput(
32+
name = "product",
3233
commandText = "Products",
3334
connectionStringSetting = "SqlConnectionString")
3435
OutputBinding<Product> product) {

samples/samples-java/src/main/java/com/function/AddProductReturnValue.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
public class AddProductReturnValue {
2424
@FunctionName("AddProductReturnValue")
2525
@SQLOutput(
26+
name = "product",
2627
commandText = "Products",
2728
connectionStringSetting = "SqlConnectionString")
2829
public Product run(
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/**
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for
4+
* license information.
5+
*/
6+
7+
package com.function;
8+
9+
import com.microsoft.azure.functions.HttpMethod;
10+
import com.microsoft.azure.functions.HttpRequestMessage;
11+
import com.microsoft.azure.functions.HttpResponseMessage;
12+
import com.microsoft.azure.functions.HttpStatus;
13+
import com.microsoft.azure.functions.OutputBinding;
14+
import com.microsoft.azure.functions.annotation.AuthorizationLevel;
15+
import com.microsoft.azure.functions.annotation.FunctionName;
16+
import com.microsoft.azure.functions.annotation.HttpTrigger;
17+
import com.microsoft.azure.functions.sql.annotation.SQLOutput;
18+
import com.fasterxml.jackson.core.JsonParseException;
19+
import com.fasterxml.jackson.databind.JsonMappingException;
20+
import com.fasterxml.jackson.databind.ObjectMapper;
21+
import com.function.Common.Product;
22+
23+
import java.io.IOException;
24+
import java.util.Optional;
25+
26+
public class AddProductToTwoTables {
27+
@FunctionName("AddProductToTwoTables")
28+
public HttpResponseMessage run(
29+
@HttpTrigger(
30+
name = "req",
31+
methods = {HttpMethod.POST},
32+
authLevel = AuthorizationLevel.ANONYMOUS,
33+
route = "addproducttotwotables")
34+
HttpRequestMessage<Optional<String>> request,
35+
@SQLOutput(
36+
name = "product",
37+
commandText = "Products",
38+
connectionStringSetting = "SqlConnectionString")
39+
OutputBinding<Product> product,
40+
@SQLOutput(
41+
name = "productWithIdentity",
42+
commandText = "ProductsWithIdentity",
43+
connectionStringSetting = "SqlConnectionString")
44+
OutputBinding<Product> productWithIdentity) throws JsonParseException, JsonMappingException, IOException {
45+
46+
String json = request.getBody().get();
47+
ObjectMapper mapper = new ObjectMapper();
48+
Product p = mapper.readValue(json, Product.class);
49+
product.setValue(p);
50+
productWithIdentity.setValue(p);
51+
52+
return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(product).build();
53+
}
54+
}

samples/samples-java/src/main/java/com/function/AddProductWithDefaultPK.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public HttpResponseMessage run(
3333
route = "addproductwithdefaultpk")
3434
HttpRequestMessage<Optional<String>> request,
3535
@SQLOutput(
36+
name = "product",
3637
commandText = "dbo.ProductsWithDefaultPK",
3738
connectionStringSetting = "SqlConnectionString")
3839
OutputBinding<ProductWithDefaultPK> product) throws JsonParseException, JsonMappingException, IOException {

samples/samples-java/src/main/java/com/function/AddProductWithIdentityColumn.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public HttpResponseMessage run(
2828
route = "addproductwithidentitycolumn")
2929
HttpRequestMessage<Optional<String>> request,
3030
@SQLOutput(
31+
name = "product",
3132
commandText = "ProductsWithIdentity",
3233
connectionStringSetting = "SqlConnectionString")
3334
OutputBinding<ProductWithoutId> product) {

0 commit comments

Comments
 (0)