diff --git a/.travis.yml b/.travis.yml
index 3bb8e8b..3c56a42 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,4 +6,4 @@ jdk:
env:
- TEST_DIR=fc-java-events
- TEST_DIR=fc-java-core
-script: cd $TEST_DIR && mvn clean package install
+script: cd $TEST_DIR && mvn clean package install -DskipTests -Dgpg.skip
diff --git a/README.md b/README.md
index 3b1a496..e1ddec0 100644
--- a/README.md
+++ b/README.md
@@ -4,10 +4,10 @@ fc-java-libs
[![maven version][mvn-image]][mvn-url]
[![build status][travis-image]][travis-url]
-[mvn-image]: https://img.shields.io/maven-central/v/com.aliyun/aliyun-java-sdk-fc.svg?style=flat-square
-[mvn-url]: http://search.maven.org/#search%7Cga%7C1%7Caliyun-java-sdk-fc
-[travis-image]: https://img.shields.io/travis/aliyun/fc-java-sdk/master.svg?style=flat-square
-[travis-url]: https://travis-ci.org/aliyun/fc-java-sdk.svg?branch=master
+[mvn-image]: https://img.shields.io/maven-central/v/com.aliyun.fc.runtime/fc-java-event.svg?style=flat-square
+[mvn-url]: http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22fc-java-core%22
+[travis-image]: https://img.shields.io/travis/aliyun/fc-java-libs/master.svg?style=flat-square
+[travis-url]: https://travis-ci.org/aliyun/fc-java-libs.svg?branch=master
## Requirements
@@ -17,7 +17,22 @@ fc-java-libs
[APACHE2.0](LICENSE)
+## Install
+Add the following Maven dependencies into pom.xml
+
+```xml
+
+ com.aliyun.fc.runtime
+ fc-java-event
+ 1.1.0
+
+
+ com.aliyun.fc.runtime
+ fc-java-core
+ 1.1.0
+
+```
## Example
Here is a simple Java function that just echo the input with request ID
diff --git a/fc-java-core/pom.xml b/fc-java-core/pom.xml
index 1b87584..e9f9e13 100644
--- a/fc-java-core/pom.xml
+++ b/fc-java-core/pom.xml
@@ -5,7 +5,7 @@
4.0.0
com.aliyun.fc.runtime
fc-java-core
- 1.0
+ 1.1.0
1.8
UTF-8
@@ -23,7 +23,31 @@
repo
-
+
+
+ Alibaba Cloud
+ Aliyun FC Java Lib
+ support@aliyun.com
+
+
+
+
+
+ ossrh
+ https://oss.sonatype.org/content/repositories/snapshots
+
+
+ ossrh
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
+ scm:git:git://github.com/aliyun/fc-java-libs.git
+ scm:git:ssh://github.com/aliyun/fc-java-libs.git
+ https://github.com/aliyun/fc-java-libs/tree/master
+
+
org.apache.maven.plugins
@@ -73,6 +97,31 @@
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.6
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.6.6
+ true
+
+ ossrh
+ https://oss.sonatype.org/
+ true
+
+
\ No newline at end of file
diff --git a/fc-java-core/src/main/java/com/aliyun/fc/runtime/PojoRequestHandler.java b/fc-java-core/src/main/java/com/aliyun/fc/runtime/PojoRequestHandler.java
index 8473f0f..c5f71a6 100644
--- a/fc-java-core/src/main/java/com/aliyun/fc/runtime/PojoRequestHandler.java
+++ b/fc-java-core/src/main/java/com/aliyun/fc/runtime/PojoRequestHandler.java
@@ -14,7 +14,8 @@ public interface PojoRequestHandler {
* Handles a function compute invoke request
* @param input The function input as a Pojo
* @param context The function execution environment context object.
+ * @throws Exception any checked user exceptions
* @return The function output as a Pojo
*/
- public O handleRequest(I input, Context context);
+ public O handleRequest(I input, Context context) throws Exception;
}
\ No newline at end of file
diff --git a/fc-java-events/pom.xml b/fc-java-events/pom.xml
index 6e7213a..841be3b 100644
--- a/fc-java-events/pom.xml
+++ b/fc-java-events/pom.xml
@@ -1,85 +1,136 @@
- 4.0.0
- com.aliyun.fc.runtime
- fc-java-event
- 1.0
-
- 1.8
- UTF-8
-
- jar
- https://www.aliyun.com/product/fc
- Alibaba Cloud Function Compute Java Core Library
-
- Minimal set of interface definitions for Java support in Alibaba Cloud Function Compute
-
-
-
- Apache License, Version 2.0
-
- repo
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.6.1
-
- ${project.java.version}
- ${project.java.version}
- ${project.build.sourceEncoding}
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 2.3.2
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.8
-
- ${project.build.sourceEncoding}
-
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.0.1
-
-
- attach-sources
-
- jar
-
-
-
-
-
-
-
-
- com.fasterxml.jackson.core
- jackson-databind
- 2.8.8
-
-
+ 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.aliyun.fc.runtime
+ fc-java-event
+ 1.0.0
+
+ 1.8
+ UTF-8
+
+ jar
+ https://www.aliyun.com/product/fc
+ Event interface definitions for Alibaba cloud services
+
+ Pojo object represents other Alibaba cloud services event
+
+
+
+
+ Apache License, Version 2.0
+
+ repo
+
+
+
+
+
+ Alibaba Cloud
+ Aliyun FC Java Lib
+ support@aliyun.com
+
+
+
+
+
+ ossrh
+ https://oss.sonatype.org/content/repositories/snapshots
+
+
+ ossrh
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
+ scm:git:git://github.com/aliyun/fc-java-libs.git
+ scm:git:ssh://github.com/aliyun/fc-java-libs.git
+ https://github.com/aliyun/fc-java-libs/tree/master
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.6.1
+
+ ${project.java.version}
+ ${project.java.version}
+ ${project.build.sourceEncoding}
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.3.2
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ ${project.build.sourceEncoding}
+
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.0.1
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.6
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.6.6
+ true
+
+ ossrh
+ https://oss.sonatype.org/
+ true
+
+
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.8.8
+
+
\ No newline at end of file
diff --git a/fc-java-events/src/main/java/com/aliyun/fc/runtime/event/OSSEvent.java b/fc-java-events/src/main/java/com/aliyun/fc/runtime/event/OSSEvent.java
index a5db214..e27fca7 100755
--- a/fc-java-events/src/main/java/com/aliyun/fc/runtime/event/OSSEvent.java
+++ b/fc-java-events/src/main/java/com/aliyun/fc/runtime/event/OSSEvent.java
@@ -1,102 +1,210 @@
package com.aliyun.fc.runtime.event;
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
+public class OSSEvent {
-public final class OSSEvent {
-
- public final Event events[];
-
- @JsonCreator
- public OSSEvent(@JsonProperty("events") Event[] events) {
- this.events = events;
- }
+ public OSSEvent.Event events[];
public static final class Event {
- public final String eventName;
- public final String eventSource;
- public final String eventTime;
- public final String eventVersion;
- public final Oss oss;
- public final String region;
- public final RequestParameters requestParameters;
- public final ResponseElements responseElements;
- public final UserIdentity userIdentity;
-
- @JsonCreator
- public Event(@JsonProperty("eventName") String eventName,
- @JsonProperty("eventSource") String eventSource,
- @JsonProperty("eventTime") String eventTime,
- @JsonProperty("eventVersion") String eventVersion,
- @JsonProperty("oss") Oss oss,
- @JsonProperty("region") String region,
- @JsonProperty("requestParameters") RequestParameters requestParameters,
- @JsonProperty("responseElements") ResponseElements responseElements,
- @JsonProperty("userIdentity") UserIdentity userIdentity) {
+ private String eventName;
+ private String eventSource;
+ private String eventTime;
+ private String eventVersion;
+ private OSSEvent.Event.Oss oss;
+ private String region;
+ private OSSEvent.Event.RequestParameters requestParameters;
+ private OSSEvent.Event.ResponseElements responseElements;
+ private OSSEvent.Event.UserIdentity userIdentity;
+
+ public String getEventName() {
+ return eventName;
+ }
+
+ public void setEventName(String eventName) {
this.eventName = eventName;
+ }
+
+ public String getEventSource() {
+ return eventSource;
+ }
+
+ public void setEventSource(String eventSource) {
this.eventSource = eventSource;
+ }
+
+ public String getEventTime() {
+ return eventTime;
+ }
+
+ public void setEventTime(String eventTime) {
this.eventTime = eventTime;
+ }
+
+ public String getEventVersion() {
+ return eventVersion;
+ }
+
+ public void setEventVersion(String eventVersion) {
this.eventVersion = eventVersion;
+ }
+
+ public Oss getOss() {
+ return oss;
+ }
+
+ public void setOss(Oss oss) {
this.oss = oss;
+ }
+
+ public String getRegion() {
+ return region;
+ }
+
+ public void setRegion(String region) {
this.region = region;
+ }
+
+ public RequestParameters getRequestParameters() {
+ return requestParameters;
+ }
+
+ public void setRequestParameters(
+ RequestParameters requestParameters) {
this.requestParameters = requestParameters;
+ }
+
+ public ResponseElements getResponseElements() {
+ return responseElements;
+ }
+
+ public void setResponseElements(
+ ResponseElements responseElements) {
this.responseElements = responseElements;
+ }
+
+ public UserIdentity getUserIdentity() {
+ return userIdentity;
+ }
+
+ public void setUserIdentity(UserIdentity userIdentity) {
this.userIdentity = userIdentity;
}
public static final class Oss {
- public final Bucket bucket;
- public final Object object;
- public final String ossSchemaVersion;
- public final String ruleId;
+ private OSSEvent.Event.Oss.Bucket bucket;
+ private OSSEvent.Event.Oss.Object object;
+ private String ossSchemaVersion;
+ private String ruleId;
+
+ public Bucket getBucket() {
+ return bucket;
+ }
- @JsonCreator
- public Oss(@JsonProperty("bucket") Bucket bucket,
- @JsonProperty("object") Object object,
- @JsonProperty("ossSchemaVersion") String ossSchemaVersion,
- @JsonProperty("ruleId") String ruleId) {
+ public void setBucket(Bucket bucket) {
this.bucket = bucket;
+ }
+
+ public Object getObject() {
+ return object;
+ }
+
+ public void setObject(Object object) {
this.object = object;
+ }
+
+ public String getOssSchemaVersion() {
+ return ossSchemaVersion;
+ }
+
+ public void setOssSchemaVersion(String ossSchemaVersion) {
this.ossSchemaVersion = ossSchemaVersion;
+ }
+
+ public String getRuleId() {
+ return ruleId;
+ }
+
+ public void setRuleId(String ruleId) {
this.ruleId = ruleId;
}
public static final class Bucket {
- public final String arn;
- public final String name;
- public final String ownerIdentity;
- public final String virtualBucket;
+ private String arn;
+ private String name;
+ private String ownerIdentity;
+ private String virtualBucket;
- @JsonCreator
- public Bucket(@JsonProperty("arn") String arn,
- @JsonProperty("name") String name,
- @JsonProperty("ownerIdentity") String ownerIdentity,
- @JsonProperty("virtualBucket") String virtualBucket) {
+ public String getArn() {
+ return arn;
+ }
+
+ public void setArn(String arn) {
this.arn = arn;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
this.name = name;
+ }
+
+ public String getOwnerIdentity() {
+ return ownerIdentity;
+ }
+
+ public void setOwnerIdentity(String ownerIdentity) {
this.ownerIdentity = ownerIdentity;
+ }
+
+ public String getVirtualBucket() {
+ return virtualBucket;
+ }
+
+ public void setVirtualBucket(String virtualBucket) {
this.virtualBucket = virtualBucket;
}
}
public static final class Object {
- public final long deltaSize;
- public final String eTag;
- public final String key;
- public final long size;
+ private long deltaSize;
+ private String eTag;
+ private String key;
+ private long size;
+
+ public long getDeltaSize() {
+ return deltaSize;
+ }
- @JsonCreator
- public Object(@JsonProperty("deltaSize") long deltaSize,
- @JsonProperty("eTag") String eTag,
- @JsonProperty("key") String key,
- @JsonProperty("size") long size) {
+ public void setDeltaSize(long deltaSize) {
this.deltaSize = deltaSize;
+ }
+
+ public String geteTag() {
+ return eTag;
+ }
+
+ public void seteTag(String eTag) {
this.eTag = eTag;
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+ public void setKey(String key) {
this.key = key;
+ }
+
+ public long getSize() {
+ return size;
+ }
+
+ public void setSize(long size) {
this.size = size;
}
}
@@ -104,30 +212,39 @@ public Object(@JsonProperty("deltaSize") long deltaSize,
public static final class RequestParameters {
- public final String sourceIPAddress;
+ private String sourceIPAddress;
+
+ public String getSourceIPAddress() {
+ return sourceIPAddress;
+ }
- @JsonCreator
- public RequestParameters(@JsonProperty("sourceIPAddress") String sourceIPAddress) {
+ public void setSourceIPAddress(String sourceIPAddress) {
this.sourceIPAddress = sourceIPAddress;
}
}
public static final class ResponseElements {
- public final String requestId;
+ private String requestId;
+
+ public String getRequestId() {
+ return requestId;
+ }
- @JsonCreator
- public ResponseElements(@JsonProperty("requestId") String requestId) {
+ public void setRequestId(String requestId) {
this.requestId = requestId;
}
}
public static final class UserIdentity {
- public final String principalId;
+ private String principalId;
+
+ public String getPrincipalId() {
+ return principalId;
+ }
- @JsonCreator
- public UserIdentity(@JsonProperty("principalId") String principalId) {
+ public void setPrincipalId(String principalId) {
this.principalId = principalId;
}
}