diff --git a/azure-functions-java-http-library/pom.xml b/azure-functions-java-http-library/pom.xml new file mode 100644 index 0000000..beb8cc6 --- /dev/null +++ b/azure-functions-java-http-library/pom.xml @@ -0,0 +1,149 @@ + + 4.0.0 + com.microsoft.azure.functions + azure-functions-java-http-library + 1.0.0-SNAPSHOT + jar + + com.microsoft.maven + java-8-parent + 8.0.1 + + + + Microsoft Azure Functions Http Library + This package contains Java Http interfaces and annotations to interact with Microsoft Azure functions runtime. + https://azure.microsoft.com/en-us/services/functions + + + UTF-8 + + + + + MIT License + https://opensource.org/licenses/MIT + repo + + + + + scm:git:https://github.com/Azure/azure-functions-java-worker + scm:git:git@github.com:Azure/azure-functions-java-worker + https://github.com/Azure/azure-functions-java-worker + HEAD + + + + + Microsoft + Microsoft Corporation + + + + + + ossrh + Sonatype Snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + true + default + + + + + + maven.snapshots + Maven Central Snapshot Repository + https://oss.sonatype.org/content/repositories/snapshots/ + + false + + + true + + + + + + + com.microsoft.azure.functions + azure-functions-java-core-library + 1.1.0 + compile + + + + org.reflections + reflections + test + + + junit + junit + test + + + org.mockito + mockito-core + test + + + + + + + + maven-compiler-plugin + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-javadoc-plugin + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.0.0-M2 + + + enforce-maven + + enforce + + + + + 3.2.0 + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + target + + + testing-project-jar + ${project.artifactId}-${project.version}-tests.jar + + + + + + + + + + + + diff --git a/src/main/java/com/microsoft/azure/functions/annotation/AuthorizationLevel.java b/azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/AuthorizationLevel.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/AuthorizationLevel.java rename to azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/AuthorizationLevel.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/BindingName.java b/azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/BindingName.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/BindingName.java rename to azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/BindingName.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/ExponentialBackoffRetry.java b/azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/ExponentialBackoffRetry.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/ExponentialBackoffRetry.java rename to azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/ExponentialBackoffRetry.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/FixedDelayRetry.java b/azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/FixedDelayRetry.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/FixedDelayRetry.java rename to azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/FixedDelayRetry.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/FunctionName.java b/azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/FunctionName.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/FunctionName.java rename to azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/FunctionName.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/HttpOutput.java b/azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/HttpOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/HttpOutput.java rename to azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/HttpOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/HttpTrigger.java b/azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/HttpTrigger.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/HttpTrigger.java rename to azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/HttpTrigger.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/package-info.java b/azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/package-info.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/package-info.java rename to azure-functions-java-http-library/src/main/java/com/microsoft/azure/functions/annotation/package-info.java diff --git a/azure-functions-java-http-library/src/test/java/com/microsoft/azure/functions/annotation/BindingTest.java b/azure-functions-java-http-library/src/test/java/com/microsoft/azure/functions/annotation/BindingTest.java new file mode 100644 index 0000000..d91ef85 --- /dev/null +++ b/azure-functions-java-http-library/src/test/java/com/microsoft/azure/functions/annotation/BindingTest.java @@ -0,0 +1,59 @@ +package com.microsoft.azure.functions.annotation; + +import org.junit.Before; +import org.junit.Test; +import org.reflections.Reflections; + +import java.lang.annotation.Target; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import static junit.framework.TestCase.assertTrue; + +/** + * Unit tests that enforce annotation contracts and conventions for Functions + */ +public class BindingTest { + private static Set> annotations; + private static String[] bindingAnnotationSuffix = new String[] { "Input", "Output", "Trigger" }; + + @Test + public void every_binding_annotation_should_have_name_method() { + final String methodName = "name"; + + for (Class annotation : annotations) { + Optional method = findMethod(annotation, methodName); + assertTrue(method.isPresent()); + } + } + + @Test + public void every_binding_annotation_should_have_dataType_method() { + final String methodName = "dataType"; + + for (Class annotation : annotations) { + Optional method = findMethod(annotation, methodName); + assertTrue(method.isPresent()); + } + } + + /** + * find all annotation bindings based on annotation suffix conventions defined in bindingAnnotationSuffix array + */ + @Before + public void findAllFunctionParameterBindingsInCore() { + annotations = new Reflections(BindingTest.class.getPackage().getName()) + .getTypesAnnotatedWith(Target.class) + .stream() + .filter(t -> t.getSimpleName().endsWith(bindingAnnotationSuffix[0]) || + t.getSimpleName().endsWith(bindingAnnotationSuffix[1]) || + t.getSimpleName().endsWith(bindingAnnotationSuffix[2])).collect(Collectors.toSet()); + } + + private Optional findMethod(Class type, String name) { + return Arrays.stream(type.getMethods()).filter(m -> m.getName().equals(name)).findAny(); + } +} diff --git a/azure-functions-java-library/pom.xml b/azure-functions-java-library/pom.xml new file mode 100644 index 0000000..7ee7993 --- /dev/null +++ b/azure-functions-java-library/pom.xml @@ -0,0 +1,151 @@ + + 4.0.0 + com.microsoft.azure.functions + azure-functions-java-library + 2.2.0 + jar + + com.microsoft.maven + java-8-parent + 8.0.1 + + + + Microsoft Azure Functions Java Core Types + This package contains all Java interfaces and annotations to interact with Microsoft Azure functions runtime. + https://azure.microsoft.com/en-us/services/functions + + + UTF-8 + + + + + MIT License + https://opensource.org/licenses/MIT + repo + + + + + scm:git:https://github.com/Azure/azure-functions-java-worker + scm:git:git@github.com:Azure/azure-functions-java-worker + https://github.com/Azure/azure-functions-java-worker + HEAD + + + + + pgopa + Pragna Gopa + pgopa@microsoft.com + + + xscript + Kevin Zhao + kevinzha@microsoft.com + + + + + + ossrh + Sonatype Snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + true + default + + + + + + maven.snapshots + Maven Central Snapshot Repository + https://oss.sonatype.org/content/repositories/snapshots/ + + false + + + true + + + + + + + com.microsoft.azure.functions + azure-functions-java-core-library + 1.2.0 + compile + + + + org.reflections + reflections + test + + + junit + junit + test + + + org.mockito + mockito-core + test + + + + + + + + maven-compiler-plugin + + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-javadoc-plugin + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.0.0-M2 + + + enforce-maven + + enforce + + + + + 3.2.0 + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + ${project.build.directory} + + + testing-project-jar + ${project.artifactId}-${project.version}-tests.jar + + + + + + + + diff --git a/src/main/java/com/microsoft/azure/functions/annotation/AccessRights.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/AccessRights.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/AccessRights.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/AccessRights.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/BlobInput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/BlobInput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/BlobInput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/BlobInput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/BlobOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/BlobOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/BlobOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/BlobOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/BlobTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/BlobTrigger.java similarity index 97% rename from src/main/java/com/microsoft/azure/functions/annotation/BlobTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/BlobTrigger.java index 932e409..49ac3a1 100644 --- a/src/main/java/com/microsoft/azure/functions/annotation/BlobTrigger.java +++ b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/BlobTrigger.java @@ -37,7 +37,6 @@ * context.getLogger().info("Name: " + filename + ", Size: " + content.length + " bytes"); * } * - * @see com.microsoft.azure.functions.annotation.BindingName * @since 1.0.0 */ @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/com/microsoft/azure/functions/annotation/Cardinality.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/Cardinality.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/Cardinality.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/Cardinality.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/CosmosDBInput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/CosmosDBInput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/CosmosDBInput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/CosmosDBInput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/CosmosDBOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/CosmosDBOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/CosmosDBOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/CosmosDBOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/CosmosDBTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/CosmosDBTrigger.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/CosmosDBTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/CosmosDBTrigger.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/CustomBinding.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/CustomBinding.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/CustomBinding.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/CustomBinding.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/EventGridOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/EventGridOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/EventGridOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/EventGridOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/EventGridTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/EventGridTrigger.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/EventGridTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/EventGridTrigger.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/EventHubOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/EventHubOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/EventHubOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/EventHubOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/EventHubTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/EventHubTrigger.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/EventHubTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/EventHubTrigger.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/HasImplicitOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/HasImplicitOutput.java similarity index 96% rename from src/main/java/com/microsoft/azure/functions/annotation/HasImplicitOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/HasImplicitOutput.java index 90976c7..d625e94 100644 --- a/src/main/java/com/microsoft/azure/functions/annotation/HasImplicitOutput.java +++ b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/HasImplicitOutput.java @@ -1,41 +1,41 @@ -/** - * 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.Retention; -import java.lang.annotation.RetentionPolicy; - -/** - *

- * Place this on a parameter to define a binding that need return value

- * - *
    - *
  • Any native Java types such as int, String, byte[]
  • - *
  • Any POJO type
  • - *
- * - *

The following example shows a example binding that uses HasImplicitOutput

- * - *
{@literal @}Retention(RetentionPolicy.RUNTIME)
- * {@literal @}Target(ElementType.PARAMETER)
- * {@literal @}HasImplicitOutput
- * public @interface HasImplicitOutputBinding {
- *     // ...
- * }
- * - * @since 2.0.1 - */ - -@Retention(RetentionPolicy.RUNTIME) -public @interface HasImplicitOutput { - /** - * Defines the binding metadata value, if ture support for return value, if false don't support return value. - * Default is true - * - * @return The binding metadata value. - */ - boolean value() default true; -} +/** + * 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.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + *

+ * Place this on a parameter to define a binding that need return value

+ * + *
    + *
  • Any native Java types such as int, String, byte[]
  • + *
  • Any POJO type
  • + *
+ * + *

The following example shows a example binding that uses HasImplicitOutput

+ * + *
{@literal @}Retention(RetentionPolicy.RUNTIME)
+ * {@literal @}Target(ElementType.PARAMETER)
+ * {@literal @}HasImplicitOutput
+ * public @interface HasImplicitOutputBinding {
+ *     // ...
+ * }
+ * + * @since 2.0.1 + */ + +@Retention(RetentionPolicy.RUNTIME) +public @interface HasImplicitOutput { + /** + * Defines the binding metadata value, if ture support for return value, if false don't support return value. + * Default is true + * + * @return The binding metadata value. + */ + boolean value() default true; +} diff --git a/src/main/java/com/microsoft/azure/functions/annotation/KafkaOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/KafkaOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/KafkaOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/KafkaOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/KafkaTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/KafkaTrigger.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/KafkaTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/KafkaTrigger.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/QueueOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/QueueOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/QueueOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/QueueOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/QueueTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/QueueTrigger.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/QueueTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/QueueTrigger.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/SendGridOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/SendGridOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/SendGridOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/SendGridOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusQueueOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusQueueOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/ServiceBusQueueOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusQueueOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusQueueTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusQueueTrigger.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/ServiceBusQueueTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusQueueTrigger.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusTopicOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusTopicOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/ServiceBusTopicOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusTopicOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusTopicTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusTopicTrigger.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/ServiceBusTopicTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/ServiceBusTopicTrigger.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/StorageAccount.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/StorageAccount.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/StorageAccount.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/StorageAccount.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/TableInput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/TableInput.java similarity index 98% rename from src/main/java/com/microsoft/azure/functions/annotation/TableInput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/TableInput.java index d42f5b5..1e51f81 100644 --- a/src/main/java/com/microsoft/azure/functions/annotation/TableInput.java +++ b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/TableInput.java @@ -36,7 +36,6 @@ * return items.length; * } * - * @see com.microsoft.azure.functions.annotation.HttpTrigger * @since 1.0.0 */ @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/com/microsoft/azure/functions/annotation/TableOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/TableOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/TableOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/TableOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/TimerTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/TimerTrigger.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/TimerTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/TimerTrigger.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/TwilioSmsOutput.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/TwilioSmsOutput.java similarity index 100% rename from src/main/java/com/microsoft/azure/functions/annotation/TwilioSmsOutput.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/TwilioSmsOutput.java diff --git a/src/main/java/com/microsoft/azure/functions/annotation/WarmupTrigger.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/WarmupTrigger.java similarity index 97% rename from src/main/java/com/microsoft/azure/functions/annotation/WarmupTrigger.java rename to azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/WarmupTrigger.java index 8e19ad4..1fe89e0 100644 --- a/src/main/java/com/microsoft/azure/functions/annotation/WarmupTrigger.java +++ b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/WarmupTrigger.java @@ -1,56 +1,56 @@ -/** - * 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; - - -/** - *

The warmup trigger lets you define a function that's run when a new instance of your function app is started. - * You can use a warmup trigger to pre-load custom dependencies during the pre-warming process so your functions are - * ready to start processing requests immediately. Some actions for a warmup trigger might include opening connections, - * loading dependencies, or running any other custom logic before your app begins receiving traffic. - * The parameter type should be set as {@link java.lang.Object}

- * - * - *

The following example shows a Java function that logs the message body of the event hub trigger:

- * - *
{@literal @}FunctionName("Warmup")
- * public void warmup(
- *    {@literal @}WarmupTrigger Object warmupContext,
- *     final ExecutionContext context
- * ) {
- *     context.getLogger().info("Function App instance is warm up");
- * }
- * - * @since 2.0.2 - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.PARAMETER) -@CustomBinding(direction = "in", name = "warmupContext", type = "warmupTrigger") -public @interface WarmupTrigger { - /** - * The variable name used in function code for the request or request body. - * - * @return The variable name used in function code for the request or request body. - */ - String name() default "warmupContext"; - - /** - *

Defines how Functions runtime should treat the parameter value. Possible values are:

- *
    - *
  • "": get the value as a string, and try to deserialize to actual parameter type like POJO
  • - *
  • string: always get the value as a string
  • - *
  • binary: get the value as a binary data, and try to deserialize to actual parameter type byte[]
  • - *
- * @return The dataType which will be used by the Functions runtime. - */ - String dataType() default ""; -} +/** + * 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; + + +/** + *

The warmup trigger lets you define a function that's run when a new instance of your function app is started. + * You can use a warmup trigger to pre-load custom dependencies during the pre-warming process so your functions are + * ready to start processing requests immediately. Some actions for a warmup trigger might include opening connections, + * loading dependencies, or running any other custom logic before your app begins receiving traffic. + * The parameter type should be set as {@link java.lang.Object}

+ * + * + *

The following example shows a Java function that logs the message body of the event hub trigger:

+ * + *
{@literal @}FunctionName("Warmup")
+ * public void warmup(
+ *    {@literal @}WarmupTrigger Object warmupContext,
+ *     final ExecutionContext context
+ * ) {
+ *     context.getLogger().info("Function App instance is warm up");
+ * }
+ * + * @since 2.0.2 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.PARAMETER) +@CustomBinding(direction = "in", name = "warmupContext", type = "warmupTrigger") +public @interface WarmupTrigger { + /** + * The variable name used in function code for the request or request body. + * + * @return The variable name used in function code for the request or request body. + */ + String name() default "warmupContext"; + + /** + *

Defines how Functions runtime should treat the parameter value. Possible values are:

+ *
    + *
  • "": get the value as a string, and try to deserialize to actual parameter type like POJO
  • + *
  • string: always get the value as a string
  • + *
  • binary: get the value as a binary data, and try to deserialize to actual parameter type byte[]
  • + *
+ * @return The dataType which will be used by the Functions runtime. + */ + String dataType() default ""; +} diff --git a/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/package-info.java b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/package-info.java new file mode 100644 index 0000000..5a63cd7 --- /dev/null +++ b/azure-functions-java-library/src/main/java/com/microsoft/azure/functions/annotation/package-info.java @@ -0,0 +1,11 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + */ + +/** + * Annotations and support classes for use as part of the Java API for Azure Functions. + */ + +package com.microsoft.azure.functions.annotation; diff --git a/src/test/java/com/microsoft/azure/functions/annotation/BindingTest.java b/azure-functions-java-library/src/test/java/com/microsoft/azure/functions/annotation/BindingTest.java similarity index 100% rename from src/test/java/com/microsoft/azure/functions/annotation/BindingTest.java rename to azure-functions-java-library/src/test/java/com/microsoft/azure/functions/annotation/BindingTest.java diff --git a/pom.xml b/pom.xml index c94147b..89c70a6 100644 --- a/pom.xml +++ b/pom.xml @@ -1,150 +1,14 @@ - 4.0.0 - com.microsoft.azure.functions - azure-functions-java-library - 2.2.0 - jar - - com.microsoft.maven - java-8-parent - 8.0.1 - - - Microsoft Azure Functions Java Core Types - This package contains all Java interfaces and annotations to interact with Microsoft Azure functions runtime. - https://azure.microsoft.com/en-us/services/functions - - - UTF-8 - - - - - MIT License - https://opensource.org/licenses/MIT - repo - - - - - scm:git:https://github.com/Azure/azure-functions-java-worker - scm:git:git@github.com:Azure/azure-functions-java-worker - https://github.com/Azure/azure-functions-java-worker - HEAD - - - - - pgopa - Pragna Gopa - pgopa@microsoft.com - - - xscript - Kevin Zhao - kevinzha@microsoft.com - - - - - - ossrh - Sonatype Snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - true - default - - - - - - maven.snapshots - Maven Central Snapshot Repository - https://oss.sonatype.org/content/repositories/snapshots/ - - false - - - true - - - - - - - com.microsoft.azure.functions - azure-functions-java-core-library - 1.2.0 - compile - - - - org.reflections - reflections - test - - - junit - junit - test - - - org.mockito - mockito-core - test - - - - - - - - maven-compiler-plugin - - - org.apache.maven.plugins - maven-source-plugin - - - org.apache.maven.plugins - maven-javadoc-plugin - - - org.apache.maven.plugins - maven-enforcer-plugin - 3.0.0-M2 - - - enforce-maven - - enforce - - - - - 3.2.0 - - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - ${project.build.directory} - - - testing-project-jar - ${project.artifactId}-${project.version}-tests.jar - - - - - - - - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + com.microsoft.azure.functions + azure-functions-java-all-library + pom + 1.0-SNAPSHOT + + azure-functions-java-library + azure-functions-java-http-library + + \ No newline at end of file