diff --git a/.gitignore b/.gitignore
index d99a1b1..3622173 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+java-fc-sample.iml
+target/
+.idea/
# ---> Java
# Compiled class file
*.class
diff --git a/README.md b/README.md
index 4fc930c..5f13c58 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
# aliyun-java-fc-sample
+Official documents: https://help.aliyun.com/document_detail/113519.html
diff --git a/build.json b/build.json
new file mode 100644
index 0000000..55e28df
--- /dev/null
+++ b/build.json
@@ -0,0 +1,12 @@
+{
+ "java": "1.8",
+ "builder": {
+ "name": "maven",
+ "version": "3.5.2"
+ },
+ "repo": {
+ "dependencies": [
+ "me.hatter:commons:3.40"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/justfile b/justfile
new file mode 100644
index 0000000..ee40a66
--- /dev/null
+++ b/justfile
@@ -0,0 +1,7 @@
+_:
+ @just --list
+
+build:
+ buildj package
+
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..8db191d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,60 @@
+
+ 4.0.0
+ me.hatter.sample
+ java-fc-sample
+ jar
+ 1.0-SNAPSHOT
+ java-fc-sample
+
+
+
+ com.aliyun.fc.runtime
+ fc-java-core
+ 1.3.0
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ 2.6.1
+
+
+
+
+ 1.8
+ 1.8
+ true
+
+
+
+
+ maven-assembly-plugin
+ 3.1.0
+
+
+ jar-with-dependencies
+
+ false
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 1.8
+ 1.8
+
+
+
+
+
diff --git a/src/main/java/me/hatter/example/HelloFC.java b/src/main/java/me/hatter/example/HelloFC.java
new file mode 100644
index 0000000..a47659f
--- /dev/null
+++ b/src/main/java/me/hatter/example/HelloFC.java
@@ -0,0 +1,17 @@
+package me.hatter.example;
+
+import com.aliyun.fc.runtime.Context;
+import com.aliyun.fc.runtime.PojoRequestHandler;
+
+import java.util.Date;
+
+public class HelloFC implements PojoRequestHandler {
+
+ @Override
+ public HelloResponseObject handleRequest(HelloRequestObject helloRequestObject, Context context) {
+ HelloResponseObject helloResponseObject = new HelloResponseObject();
+ helloResponseObject.setTime(new Date());
+ helloResponseObject.setMessage("Hello: " + helloRequestObject.getMessage());
+ return helloResponseObject;
+ }
+}
diff --git a/src/main/java/me/hatter/example/HelloHttp.java b/src/main/java/me/hatter/example/HelloHttp.java
new file mode 100644
index 0000000..050a6ca
--- /dev/null
+++ b/src/main/java/me/hatter/example/HelloHttp.java
@@ -0,0 +1,29 @@
+package me.hatter.example;
+
+import com.aliyun.fc.runtime.Context;
+import com.aliyun.fc.runtime.HttpRequestHandler;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+
+public class HelloHttp implements HttpRequestHandler {
+ @Override
+ public void handleRequest(HttpServletRequest request, HttpServletResponse response, Context context) throws IOException, ServletException {
+ String requestPath = (String) request.getAttribute("FC_REQUEST_PATH");
+ String requestURI = (String) request.getAttribute("FC_REQUEST_URI");
+ String requestClientIP = (String) request.getAttribute("FC_REQUEST_CLIENT_IP");
+
+ response.setStatus(200);
+ response.setHeader("header1", "value1");
+ response.setHeader("header2", "value2");
+
+ String body = String.format("Path: %s\n Uri: %s\n IP: %s\n", requestPath, requestURI, requestClientIP);
+ OutputStream out = response.getOutputStream();
+ out.write((body).getBytes());
+ out.flush();
+ out.close();
+ }
+}
diff --git a/src/main/java/me/hatter/example/HelloRequestObject.java b/src/main/java/me/hatter/example/HelloRequestObject.java
new file mode 100644
index 0000000..cd11e86
--- /dev/null
+++ b/src/main/java/me/hatter/example/HelloRequestObject.java
@@ -0,0 +1,13 @@
+package me.hatter.example;
+
+public class HelloRequestObject {
+ private String message;
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+}
diff --git a/src/main/java/me/hatter/example/HelloResponseObject.java b/src/main/java/me/hatter/example/HelloResponseObject.java
new file mode 100644
index 0000000..8ecf286
--- /dev/null
+++ b/src/main/java/me/hatter/example/HelloResponseObject.java
@@ -0,0 +1,24 @@
+package me.hatter.example;
+
+import java.util.Date;
+
+public class HelloResponseObject {
+ private Date time;
+ private String message;
+
+ public Date getTime() {
+ return time;
+ }
+
+ public void setTime(Date time) {
+ this.time = time;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+}