Instantly share code, notes, and snippets.

View pipeline.groovy
pipeline {
agent any
tools {
// Jenkinsの設定画面でインストールしたMavenの名前を入力する
maven 'M3'
}
// 環境変数を設定する。
environment {
// テストを実施したいアプリケーションのURLを環境変数に設定する。
HELLOWORLD_URL = '[Hello WorldアプリケーションのURL]'
View E2ETest.java
package com.sios.test;
import static org.junit.Assert.*;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
View policy.xml
<policies>
<inbound>
<!-- CORSの設定を行う。AngularからAzure FunctionsのAPIをコールするために必要な設定。-->
<cors allow-credentials="true">
<allowed-origins>
<origin>[Azure App ServiceのURL]</origin>
</allowed-origins>
<allowed-methods>
<method>*</method>
</allowed-methods>
View chat.component.ts
import { Component,ElementRef, ViewChild } from '@angular/core';
import { Http,Headers } from '@angular/http';
@Component({
selector: 'app-root',
templateUrl: './chat.component.html',
})
export class ChatComponent {
@ViewChild('scrollMe') private myScrollContainer: ElementRef;
View index.js
module.exports = function (context, req) {
// このオブジェクトの中にCosmos DBに対して、
// クエリ「SELECT * FROM c order by c.pubDate asc」を発行した結果が入ります。
var documents = context.bindings.inputDocument;
// 先程CosmosDBから取得したJOSNをHTTPレスポンスとして返します。
context.res = {
status: 202,
headers: {
View index.js
module.exports = function (context, req) {
// Yahoo!から送られてくるIDに対応した名前を決めておく。チャットの画面に表示される。
const NAMES = {
LBHNLYCPWDV3UTO5HVVBFIXTMA:'たけい'
}
// API Managementから送られてくるYahoo!のIDをリクエストヘッダから取得します。
var uid = req.headers['x-yahoo-uid'];
var json = req.body;
View policy.xml
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-scheme="Bearer" require-signed-tokens="true" clock-skew="0">
<openid-config url="https://auth.login.yahoo.co.jp/yconnect/v2/.well-known/openid-configuration" />
<issuer-signing-keys>
<!-- 先程のYahooの設定画面で取得したシークレットをBase64したもの -->
<key>XXXXXX</key>
</issuer-signing-keys>
<audiences>
<!-- 先程のYahooの設定画面で取得したClient ID -->
<audience>XXXXXX</audience>
</audiences>
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;