diff --git a/mvnBuildFunctionPluginsSkipTests.bat b/mvnBuildFunctionPluginsSkipTests.bat index c617b9d..541031b 100644 --- a/mvnBuildFunctionPluginsSkipTests.bat +++ b/mvnBuildFunctionPluginsSkipTests.bat @@ -1 +1 @@ -mvn clean install -pl build-tools,azure-maven-plugins-pom,azure-maven-plugin-lib,azure-functions-maven-plugin -Dmaven.javadoc.skip=true -Dmaven.test.skip -U -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B \ No newline at end of file +mvn clean install -pl build-tools,azure-maven-plugins-pom,azure-tools-common,azure-maven-plugin-lib,azure-functions-maven-plugin -Dmaven.javadoc.skip=true -Dmaven.test.skip -U -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B \ No newline at end of file diff --git a/src/main/java/com/microsoft/azure/functions/annotation/EventGridOutput.java b/src/main/java/com/microsoft/azure/functions/annotation/EventGridOutput.java new file mode 100644 index 0000000..3607697 --- /dev/null +++ b/src/main/java/com/microsoft/azure/functions/annotation/EventGridOutput.java @@ -0,0 +1,78 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + */ + +package com.microsoft.azure.functions.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + *
+ * Place this on a parameter whose value would come from EventGrid, and causing the method to run when an event is + * arrived. The parameter type can be one of the following:
+ * + *The following example shows a Java function that prints out an event and then sends an event to a + * custom eventGrid topic:
+ * + *{@literal @}FunctionName("eventGridMonitor")
+ * public void logEvent(
+ * {@literal @}EventGridTrigger(name = "event") String content,
+ * {@literal @}EventGridOutput(name = "outputEvent", topicEndpointUri = "MyEventGridTopicUriSetting",
+ * topicKeySetting = "MyEventGridTopicKeySetting")
+ * OutputBinding<String> outputEvent
+ * final ExecutionContext context
+ * ) {
+ * context.getLogger().info(content);
+ * final String eventGridOutputDocument = "{\"id\": \"100\", \"eventType\":\"recordInserted\",
+ * \"subject\": \"myapp/test/java\", \"eventTime\":\"2017-08-10T21:03:07+00:00\",
+ * \"data\": {\"tag1\": \"value1\",\"tag2\":\"value2\"}, \"dataVersion\": \"1.0\"}";
+ * outputEvent.setValue(eventGridOutputDocument);
+ * }
+ *
+ * @since 1.3.1
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.PARAMETER, ElementType.METHOD})
+public @interface EventGridOutput {
+ /**
+ * The variable name used in function.json.
+ * @return The variable name used in function.json.
+ */
+ String name();
+
+ /**
+ * Defines how Functions runtime should treat the parameter value. Possible values are:
+ *