View ApplicationManifest.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<ApplicationManifest xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="ChatApplicationType" ApplicationTypeVersion="1.0.0">
<Description>Chat Application</Description>
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="ChatWebPkg" ServiceManifestVersion="1.0.0"/>
</ServiceManifestImport>
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="ChatDataPkg" ServiceManifestVersion="1.0.0"/>
</ServiceManifestImport>
<DefaultServices>
View build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'
sourceSets {
main {
// ソースのディレクトリを指定します。
java.srcDirs = ['src']
// コンパイルしたクラスの出力先を指定します。
output.classesDir = 'out/classes'
resources {
View ChatData.java
package statefulservice;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import microsoft.servicefabric.data.ReliableStateManager;
View build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'
sourceSets {
main {
// ソースのディレクトリを指定します。
java.srcDirs = ['src']
// コンパイルしたクラスの出力先を指定します。
output.classesDir = 'out/classes'
resources {
View ChatRPC.java
package rpcmethods;
import java.util.concurrent.CompletableFuture;
import java.util.HashMap;
import microsoft.servicefabric.services.remoting.Service;
// RPCで呼び出されるメソッドを定義したインターフェースです。
public interface ChatRPC extends Service {
// メッセージを発言する処理のインターフェースです。
View ChatMessage.java
package rpcmethods;
import java.io.Serializable;
// チャットのメッセージや、そのメッセージを
// 発言したユーザー名などを格納するJava Beanです。
public class ChatMessage implements Serializable{
private static final long serialVersionUID = 1L;
private String name; // メッセージを発言したユーザー名
View build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'
sourceSets {
main {
// ソースのディレクトリを指定します。
java.srcDirs = ['src']
// コンパイルしたクラスの出力先を指定します。
output.classesDir = 'out/classes'
resources {
View ChatWeb.java
package statelessservice;
import java.util.concurrent.CompletableFuture;
import java.util.logging.Logger;
import java.util.ArrayList;
import java.util.List;
import system.fabric.CancellationToken;
import system.fabric.description.EndpointResourceDescription;
import microsoft.servicefabric.services.communication.runtime.ServiceInstanceListener;
View HttpCommunicationListener.java
package statelessservice;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
View settings.gradle
// 以下の3つのプロジェクトをサブプロジェクトとして指定します。
include 'ChatWeb'
include 'ChatData'
include ':ChatRPC'