├── zipkin ├── .gitignore ├── src │ └── main │ │ ├── resources │ │ ├── bootstrap.yml │ │ └── application.yml │ │ └── java │ │ └── com │ │ └── baeldung │ │ └── spring │ │ └── cloud │ │ └── bootstrap │ │ └── zipkin │ │ └── ZipkinApplication.java ├── .settings │ ├── org.eclipse.m2e.core.prefs │ ├── org.eclipse.core.resources.prefs │ └── org.eclipse.jdt.core.prefs ├── .project ├── .classpath └── pom.xml ├── eureka-server ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── .settings │ ├── org.eclipse.m2e.core.prefs │ ├── org.eclipse.core.resources.prefs │ └── org.eclipse.jdt.core.prefs ├── src │ └── main │ │ ├── resources │ │ └── application.yml │ │ └── java │ │ └── com │ │ └── joe │ │ └── eureka │ │ └── EurekaServerApplication.java ├── .project ├── .classpath ├── pom.xml ├── mvnw.cmd └── mvnw ├── spring-apigateway ├── src │ ├── main │ │ ├── resources │ │ │ ├── bootstrap.yml │ │ │ └── application.yml │ │ └── java │ │ │ └── com │ │ │ └── joe │ │ │ └── springapigateway │ │ │ └── SpringApigatewayApplication.java │ └── test │ │ └── java │ │ └── com │ │ └── joe │ │ └── springapigateway │ │ └── SpringApigatewayApplicationTests.java ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── .gitignore ├── pom.xml ├── mvnw.cmd └── mvnw ├── bookmark-service ├── src │ └── main │ │ ├── resources │ │ ├── bootstrap.yml │ │ └── application.yml │ │ └── java │ │ └── com │ │ └── joe │ │ └── bookmark │ │ ├── Config.java │ │ └── BookmarkServiceApplication.java ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── .gitignore ├── pom.xml ├── mvnw.cmd └── mvnw ├── composite-service ├── src │ ├── main │ │ ├── resources │ │ │ ├── bootstrap.yml │ │ │ └── application.yml │ │ └── java │ │ │ └── com │ │ │ └── joe │ │ │ └── composite │ │ │ ├── Config.java │ │ │ ├── controller │ │ │ └── TestController.java │ │ │ └── CompositeServiceApplication.java │ └── test │ │ └── java │ │ └── com │ │ └── joe │ │ └── composite │ │ └── CompositeServiceApplicationTests.java ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── .gitignore ├── pom.xml ├── mvnw.cmd └── mvnw ├── eureka-server-peer1 ├── src │ └── main │ │ ├── resources │ │ ├── bootstrap.yml │ │ └── application.yml │ │ └── java │ │ └── com │ │ └── joe │ │ └── eureka │ │ └── EurekaServerPeer1Application.java ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── .gitignore ├── pom.xml ├── mvnw.cmd └── mvnw ├── eureka-server-peer2 ├── src │ └── main │ │ ├── resources │ │ ├── bootstrap.yml │ │ └── application.yml │ │ └── java │ │ └── com │ │ └── joe │ │ └── eureka │ │ └── EurekaServerPeer2Application.java ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── .gitignore ├── pom.xml ├── mvnw.cmd └── mvnw ├── spring-boot-admin-server ├── src │ └── main │ │ ├── resources │ │ ├── bootstrap.yml │ │ ├── logback.xml │ │ └── application.properties │ │ └── java │ │ └── com │ │ └── baeldung │ │ └── springbootadminserver │ │ ├── SpringBootAdminServerApplication.java │ │ └── configs │ │ ├── HazelcastConfig.java │ │ └── NotifierConfiguration.java ├── .gitignore └── pom.xml ├── nodejs-web ├── public │ ├── img │ │ └── logo-2.png │ └── css │ │ ├── style.css │ │ └── alertify.css ├── eureka-client.yml ├── views │ ├── default.hbs │ └── layouts │ │ └── template.hbs ├── routes.js ├── package.json ├── .gitignore ├── routes │ └── home.js ├── server.js ├── utils │ └── eureka-utils.js └── database.loki ├── nodejs-bookservice ├── package.json ├── eureka-client.yml ├── .gitignore ├── server.js └── package-lock.json └── README.md /zipkin/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /eureka-server/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /zipkin/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: zipkin -------------------------------------------------------------------------------- /spring-apigateway/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: apigateway -------------------------------------------------------------------------------- /bookmark-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: bookmark-service -------------------------------------------------------------------------------- /composite-service/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: composite-service -------------------------------------------------------------------------------- /eureka-server-peer1/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: eureka-server-peer1 -------------------------------------------------------------------------------- /eureka-server-peer2/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: eureka-server-peer2 -------------------------------------------------------------------------------- /spring-boot-admin-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: Spring-Boot-Admin-Server -------------------------------------------------------------------------------- /nodejs-web/public/img/logo-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choelea/spring-cloud-nodejs/HEAD/nodejs-web/public/img/logo-2.png -------------------------------------------------------------------------------- /zipkin/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /eureka-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choelea/spring-cloud-nodejs/HEAD/eureka-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /eureka-server/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /bookmark-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choelea/spring-cloud-nodejs/HEAD/bookmark-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /composite-service/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choelea/spring-cloud-nodejs/HEAD/composite-service/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /eureka-server-peer1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choelea/spring-cloud-nodejs/HEAD/eureka-server-peer1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /eureka-server-peer2/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choelea/spring-cloud-nodejs/HEAD/eureka-server-peer2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-apigateway/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choelea/spring-cloud-nodejs/HEAD/spring-apigateway/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /bookmark-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip 2 | -------------------------------------------------------------------------------- /eureka-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip 2 | -------------------------------------------------------------------------------- /composite-service/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip 2 | -------------------------------------------------------------------------------- /eureka-server-peer1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip 2 | -------------------------------------------------------------------------------- /eureka-server-peer2/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip 2 | -------------------------------------------------------------------------------- /spring-apigateway/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip 2 | -------------------------------------------------------------------------------- /composite-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8050 3 | 4 | eureka: 5 | client: 6 | serviceUrl: 7 | defaultZone: http://localhost:8761/eureka/ 8 | -------------------------------------------------------------------------------- /zipkin/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding/=UTF-8 5 | -------------------------------------------------------------------------------- /eureka-server/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | encoding//src/main/resources=UTF-8 4 | encoding/=UTF-8 5 | -------------------------------------------------------------------------------- /zipkin/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | 2 | server: 3 | port: 9411 4 | 5 | eureka: 6 | client: 7 | serviceUrl: 8 | defaultZone: http://127.0.0.1:8761/eureka/ 9 | 10 | management.security.enabled: false 11 | -------------------------------------------------------------------------------- /nodejs-bookservice/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodejs-bookservice", 3 | "version": "1.0.0", 4 | "scripts": { 5 | "start": "node ./server.js" 6 | }, 7 | "dependencies": { 8 | "eureka-js-client": "^4.3.0", 9 | "express": "^4.12.4" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /zipkin/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.6 6 | -------------------------------------------------------------------------------- /eureka-server/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 5 | org.eclipse.jdt.core.compiler.source=1.8 6 | -------------------------------------------------------------------------------- /eureka-server-peer2/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8762 3 | #spring: 4 | # profiles: peer2 5 | 6 | eureka: 7 | client: 8 | registerWithEureka: false 9 | serviceUrl: 10 | defaultZone: http://localhost:8761/eureka/ 11 | logging: 12 | level: 13 | com.netflix: TRACE -------------------------------------------------------------------------------- /eureka-server-peer1/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: PC-20160321GFRJ 6 | client: 7 | registerWithEureka: false 8 | serviceUrl: 9 | defaultZone: http://localhost:8762/eureka/ 10 | logging: 11 | level: 12 | com.netflix: TRACE -------------------------------------------------------------------------------- /eureka-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | 5 | eureka: 6 | # server: 7 | # enable-self-preservation: false 8 | # eviction-interval-timer-in-ms: 30000 9 | client: 10 | registerWithEureka: false 11 | fetchRegistry: false 12 | 13 | 14 | logging: 15 | level: 16 | com.netflix: TRACE -------------------------------------------------------------------------------- /bookmark-service/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | 2 | server: 3 | port: 9994 4 | 5 | spring: 6 | jpa: 7 | generate-ddl: true 8 | 9 | logging: 10 | level: 11 | com.netflix: TRACE 12 | eureka: 13 | client: 14 | serviceUrl: 15 | defaultZone: http://127.0.0.1:8761/eureka/ 16 | 17 | management.security.enabled: false 18 | -------------------------------------------------------------------------------- /bookmark-service/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | 12 | ### IntelliJ IDEA ### 13 | .idea 14 | *.iws 15 | *.iml 16 | *.ipr 17 | 18 | ### NetBeans ### 19 | nbproject/private/ 20 | build/ 21 | nbbuild/ 22 | dist/ 23 | nbdist/ 24 | .nb-gradle/ -------------------------------------------------------------------------------- /composite-service/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | 12 | ### IntelliJ IDEA ### 13 | .idea 14 | *.iws 15 | *.iml 16 | *.ipr 17 | 18 | ### NetBeans ### 19 | nbproject/private/ 20 | build/ 21 | nbbuild/ 22 | dist/ 23 | nbdist/ 24 | .nb-gradle/ -------------------------------------------------------------------------------- /nodejs-web/eureka-client.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | overrides: 1 3 | custom: 'test' 4 | heartbeatInterval: 999 5 | registryFetchInterval: 999 6 | registerWithEureka: false 7 | fetchRegistry: true 8 | host: localhost 9 | port: 8761 10 | servicePath: '/eureka/apps/' 11 | ssl: false 12 | useDns: false 13 | fetchMetadata: false 14 | preferIpAddress: true 15 | instance: {} -------------------------------------------------------------------------------- /spring-apigateway/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | 12 | ### IntelliJ IDEA ### 13 | .idea 14 | *.iws 15 | *.iml 16 | *.ipr 17 | 18 | ### NetBeans ### 19 | nbproject/private/ 20 | build/ 21 | nbbuild/ 22 | dist/ 23 | nbdist/ 24 | .nb-gradle/ -------------------------------------------------------------------------------- /eureka-server-peer1/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | 12 | ### IntelliJ IDEA ### 13 | .idea 14 | *.iws 15 | *.iml 16 | *.ipr 17 | 18 | ### NetBeans ### 19 | nbproject/private/ 20 | build/ 21 | nbbuild/ 22 | dist/ 23 | nbdist/ 24 | .nb-gradle/ -------------------------------------------------------------------------------- /eureka-server-peer2/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | 12 | ### IntelliJ IDEA ### 13 | .idea 14 | *.iws 15 | *.iml 16 | *.ipr 17 | 18 | ### NetBeans ### 19 | nbproject/private/ 20 | build/ 21 | nbbuild/ 22 | dist/ 23 | nbdist/ 24 | .nb-gradle/ -------------------------------------------------------------------------------- /spring-boot-admin-server/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | 12 | ### IntelliJ IDEA ### 13 | .idea 14 | *.iws 15 | *.iml 16 | *.ipr 17 | 18 | ### NetBeans ### 19 | nbproject/private/ 20 | build/ 21 | nbbuild/ 22 | dist/ 23 | nbdist/ 24 | .nb-gradle/ -------------------------------------------------------------------------------- /nodejs-bookservice/eureka-client.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | overrides: 1 3 | registerWithEureka: true 4 | fetchRegistry: false 5 | host: localhost 6 | port: 8761 7 | servicePath: '/eureka/apps/' 8 | ssl: false 9 | useDns: false 10 | fetchMetadata: false 11 | preferIpAddress: false 12 | instance: 13 | app: book-service 14 | vipAddress: 'localhost' 15 | port: 3001 16 | dataCenterInfo: 17 | name: myown -------------------------------------------------------------------------------- /nodejs-web/views/default.hbs: -------------------------------------------------------------------------------- 1 |
2 |

Bookmarks

3 |
    4 | {{#each model.bookmarks}} 5 |
  • {{this.href}}
  • 6 | {{/each}} 7 |
8 | 9 |

Books

10 |
    11 | {{#each model.books}} 12 |
  • {{this.bookname}}
  • 13 | {{/each}} 14 |
15 |
-------------------------------------------------------------------------------- /bookmark-service/src/main/java/com/joe/bookmark/Config.java: -------------------------------------------------------------------------------- 1 | package com.joe.bookmark; 2 | 3 | import org.springframework.cloud.sleuth.sampler.AlwaysSampler; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | @Configuration 8 | public class Config { 9 | 10 | @Bean 11 | public AlwaysSampler defaultSampler() { 12 | return new AlwaysSampler(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /composite-service/src/main/java/com/joe/composite/Config.java: -------------------------------------------------------------------------------- 1 | package com.joe.composite; 2 | 3 | import org.springframework.cloud.sleuth.sampler.AlwaysSampler; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | @Configuration 8 | public class Config { 9 | 10 | @Bean 11 | public AlwaysSampler defaultSampler() { 12 | return new AlwaysSampler(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /spring-boot-admin-server/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %date [%thread] %-5level %logger{25} - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /nodejs-web/routes.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * 4 | * @param {*} app 5 | * @param {*} client eureka-js-client which can fetch instance by serviceId 6 | */ 7 | function create(app,client) { 8 | app.use('/', require('./routes/home')); 9 | 10 | app.use((req, res, next) => { 11 | res.status(404); 12 | res.render('404', { title: '404', message: 'This page does not exist.' }); 13 | }); 14 | } 15 | 16 | 17 | module.exports = { 18 | create: create 19 | }; 20 | -------------------------------------------------------------------------------- /composite-service/src/test/java/com/joe/composite/CompositeServiceApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.joe.composite; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class CompositeServiceApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-apigateway/src/test/java/com/joe/springapigateway/SpringApigatewayApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.joe.springapigateway; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class SpringApigatewayApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /eureka-server/src/main/java/com/joe/eureka/EurekaServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.joe.eureka; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class EurekaServerApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(EurekaServerApplication.class, args); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /eureka-server-peer1/src/main/java/com/joe/eureka/EurekaServerPeer1Application.java: -------------------------------------------------------------------------------- 1 | package com.joe.eureka; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class EurekaServerPeer1Application { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(EurekaServerPeer1Application.class, args); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /eureka-server-peer2/src/main/java/com/joe/eureka/EurekaServerPeer2Application.java: -------------------------------------------------------------------------------- 1 | package com.joe.eureka; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class EurekaServerPeer2Application { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(EurekaServerPeer2Application.class, args); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /nodejs-web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodejs-web", 3 | "description": "nodejs web application", 4 | "version": "1.0.0", 5 | "scripts": { 6 | "start": "node --harmony ./server.js" 7 | }, 8 | "dependencies": { 9 | "body-parser": "^1.12.4", 10 | "cookie-parser": "^1.3.5", 11 | "coordinator-node-client": "^3.0.0", 12 | "eureka-js-client": "^4.3.0", 13 | "express": "^4.12.4", 14 | "express-handlebars": "^3.0.0", 15 | "handlebars": "^4.0.5", 16 | "lokijs": "^1.3.19", 17 | "request-promise": "^4.2.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /zipkin/src/main/java/com/baeldung/spring/cloud/bootstrap/zipkin/ZipkinApplication.java: -------------------------------------------------------------------------------- 1 | package com.baeldung.spring.cloud.bootstrap.zipkin; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 6 | import zipkin.server.EnableZipkinServer; 7 | 8 | @SpringBootApplication 9 | @EnableEurekaClient 10 | @EnableZipkinServer 11 | public class ZipkinApplication { 12 | public static void main(String[] args) { 13 | SpringApplication.run(ZipkinApplication.class, args); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /zipkin/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | zipkin 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /eureka-server/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | eureka-server 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /composite-service/src/main/java/com/joe/composite/controller/TestController.java: -------------------------------------------------------------------------------- 1 | package com.joe.composite.controller; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.cloud.client.discovery.DiscoveryClient; 5 | import org.springframework.web.bind.annotation.GetMapping; 6 | import org.springframework.web.bind.annotation.RestController; 7 | 8 | 9 | @RestController 10 | public class TestController { 11 | @Autowired 12 | DiscoveryClient discoveryClient; 13 | 14 | @GetMapping("/dc") 15 | public String dc() { 16 | String services = "Services: " + discoveryClient.getServices(); 17 | return services; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /spring-boot-admin-server/src/main/java/com/baeldung/springbootadminserver/SpringBootAdminServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.baeldung.springbootadminserver; 2 | 3 | import de.codecentric.boot.admin.config.EnableAdminServer; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 7 | 8 | @EnableAdminServer 9 | @SpringBootApplication 10 | @EnableEurekaClient 11 | public class SpringBootAdminServerApplication { 12 | 13 | public static void main(String[] args) { 14 | SpringApplication.run(SpringBootAdminServerApplication.class, args); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /nodejs-web/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | uploads 7 | # Runtime data 8 | pids 9 | *.pid 10 | *.seed 11 | 12 | # Directory for instrumented libs generated by jscoverage/JSCover 13 | lib-cov 14 | 15 | # Coverage directory used by tools like istanbul 16 | coverage 17 | 18 | # nyc test coverage 19 | .nyc_output 20 | 21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 22 | .grunt 23 | 24 | # node-waf configuration 25 | .lock-wscript 26 | 27 | # Compiled binary addons (http://nodejs.org/api/addons.html) 28 | build/Release 29 | 30 | # Dependency directories 31 | node_modules 32 | jspm_packages 33 | 34 | # Optional npm cache directory 35 | .npm 36 | 37 | # Optional REPL history 38 | .node_repl_history 39 | -------------------------------------------------------------------------------- /nodejs-bookservice/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | uploads 7 | # Runtime data 8 | pids 9 | *.pid 10 | *.seed 11 | 12 | # Directory for instrumented libs generated by jscoverage/JSCover 13 | lib-cov 14 | 15 | # Coverage directory used by tools like istanbul 16 | coverage 17 | 18 | # nyc test coverage 19 | .nyc_output 20 | 21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 22 | .grunt 23 | 24 | # node-waf configuration 25 | .lock-wscript 26 | 27 | # Compiled binary addons (http://nodejs.org/api/addons.html) 28 | build/Release 29 | 30 | # Dependency directories 31 | node_modules 32 | jspm_packages 33 | 34 | # Optional npm cache directory 35 | .npm 36 | 37 | # Optional REPL history 38 | .node_repl_history 39 | -------------------------------------------------------------------------------- /spring-apigateway/src/main/java/com/joe/springapigateway/SpringApigatewayApplication.java: -------------------------------------------------------------------------------- 1 | package com.joe.springapigateway; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 6 | import org.springframework.cloud.netflix.zuul.EnableZuulProxy; 7 | import org.springframework.cloud.sleuth.sampler.AlwaysSampler; 8 | import org.springframework.context.annotation.Bean; 9 | 10 | @SpringBootApplication 11 | @EnableEurekaClient 12 | @EnableZuulProxy 13 | public class SpringApigatewayApplication { 14 | 15 | public static void main(String[] args) { 16 | SpringApplication.run(SpringApigatewayApplication.class, args); 17 | } 18 | @Bean 19 | public AlwaysSampler defaultSampler() { 20 | return new AlwaysSampler(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /nodejs-web/routes/home.js: -------------------------------------------------------------------------------- 1 | let router = require('express').Router(); 2 | var rp = require('request-promise'); 3 | const eurekaUtils = require('../utils/eureka-utils'); 4 | 5 | 6 | router.get('/', (req, res) => { 7 | var model = {}; 8 | var bookmarkServer = eurekaUtils.getBookmarkRootUrl(req.eurekaClient); 9 | var bookServer = eurekaUtils.getBookRootUrl(req.eurekaClient); 10 | 11 | rp(bookmarkServer + "/jlong/bookmarks") 12 | .then(function (htmlString) { 13 | model.bookmarks=JSON.parse(htmlString); 14 | return rp(bookServer+"/books"); 15 | }).then(function (htmlString){ 16 | model.books=JSON.parse(htmlString); 17 | }).then((htmlString)=>{ 18 | res.render('default', { title: 'Home Page',model:model }); 19 | }).catch(function (err) { 20 | console.log(err); 21 | }); 22 | 23 | 24 | }); 25 | 26 | 27 | module.exports = router; 28 | -------------------------------------------------------------------------------- /spring-boot-admin-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8088 2 | spring.application.name=spring-boot-admin-server 3 | 4 | #configs to connect to self register the admin server as a client 5 | spring.boot.admin.url=http://localhost:8088 6 | 7 | 8 | eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/ 9 | management.security.enabled=false 10 | #mail notifications 11 | #spring.mail.host=smtp.gmail.com 12 | #spring.mail.username=test@gmail.com 13 | #spring.mail.password=password 14 | #spring.mail.port=587 15 | #spring.mail.properties.mail.smtp.auth=true 16 | #spring.mail.properties.mail.smtp.starttls.enable=true 17 | 18 | #spring.boot.admin.notify.mail.to=test@gmail.com 19 | 20 | #hipchat notifications 21 | #spring.boot.admin.notify.hipchat.auth-token= 22 | #spring.boot.admin.notify.hipchat.room-id= 23 | #spring.boot.admin.notify.hipchat.url=https://youcompany.hipchat.com/v2/ -------------------------------------------------------------------------------- /spring-boot-admin-server/src/main/java/com/baeldung/springbootadminserver/configs/HazelcastConfig.java: -------------------------------------------------------------------------------- 1 | package com.baeldung.springbootadminserver.configs; 2 | 3 | import com.hazelcast.config.Config; 4 | import com.hazelcast.config.EvictionPolicy; 5 | import com.hazelcast.config.ListConfig; 6 | import com.hazelcast.config.MapConfig; 7 | import org.springframework.context.annotation.Bean; 8 | import org.springframework.context.annotation.Configuration; 9 | 10 | @Configuration 11 | public class HazelcastConfig { 12 | 13 | @Bean 14 | public Config hazelcast() { 15 | return new Config() 16 | .setProperty("hazelcast.jmx", "true") 17 | .addMapConfig(new MapConfig("spring-boot-admin-application-store") 18 | .setBackupCount(1) 19 | .setEvictionPolicy(EvictionPolicy.NONE)) 20 | .addListConfig(new ListConfig("spring-boot-admin-event-store") 21 | .setBackupCount(1) 22 | .setMaxSize(1000)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /spring-apigateway/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port:8080 3 | 4 | zuul: 5 | debug: 6 | request: true 7 | host: 8 | socket-timeout-millis: 10000 9 | routes: 10 | book-service: 11 | path: /books/** 12 | name: book-service ## use name 13 | stripPrefix: false 14 | sensitiveHeaders: 15 | book-service-test: ## Just annother test configuration. So http://localhost:8080/bs/books will work the same way as http://localhost:8080/books 16 | path: /bs/** 17 | serviceId: book-service ## use serviceId 18 | stripPrefix: true ## http://localhost:8080/bs/books bs will be tripped when proxy to book-service 19 | sensitiveHeaders: 20 | bookmarks: 21 | path: /bookmarks/** 22 | serviceId: bookmark-service 23 | stripPrefix: true 24 | sensitiveHeaders: 25 | ### Eureka configuration ######################## 26 | eureka: 27 | client: 28 | registerWithEureka: false 29 | fetchRegistry: true 30 | serviceUrl: 31 | defaultZone: http://localhost:8761/eureka/ 32 | 33 | management: 34 | security: 35 | enabled: false -------------------------------------------------------------------------------- /nodejs-web/views/layouts/template.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{title}} 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 24 |
25 | 26 |
27 | {{{body}}} 28 |
29 | 30 |
31 | 39 |
40 | 41 | 42 | -------------------------------------------------------------------------------- /zipkin/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /eureka-server/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /spring-boot-admin-server/src/main/java/com/baeldung/springbootadminserver/configs/NotifierConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.baeldung.springbootadminserver.configs; 2 | 3 | import de.codecentric.boot.admin.notify.LoggingNotifier; 4 | import de.codecentric.boot.admin.notify.RemindingNotifier; 5 | import de.codecentric.boot.admin.notify.filter.FilteringNotifier; 6 | import org.springframework.context.annotation.Bean; 7 | import org.springframework.context.annotation.Configuration; 8 | import org.springframework.context.annotation.Primary; 9 | import org.springframework.scheduling.annotation.EnableScheduling; 10 | import org.springframework.scheduling.annotation.Scheduled; 11 | 12 | import java.util.concurrent.TimeUnit; 13 | 14 | @Configuration 15 | @EnableScheduling 16 | public class NotifierConfiguration { 17 | 18 | // @Autowired private Notifier notifier; 19 | 20 | @Bean 21 | public LoggingNotifier notifier() { 22 | return new LoggingNotifier(); 23 | } 24 | 25 | @Bean 26 | public FilteringNotifier filteringNotifier() { 27 | return new FilteringNotifier(notifier()); 28 | } 29 | 30 | @Bean 31 | @Primary 32 | public RemindingNotifier remindingNotifier() { 33 | RemindingNotifier remindingNotifier = new RemindingNotifier(filteringNotifier()); 34 | remindingNotifier.setReminderPeriod(TimeUnit.MINUTES.toMillis(5)); 35 | return remindingNotifier; 36 | } 37 | 38 | @Scheduled(fixedRate = 60_000L) 39 | public void remind() { 40 | remindingNotifier().sendReminders(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /nodejs-web/server.js: -------------------------------------------------------------------------------- 1 | //to view es6 capabilities see http://node.green/ 2 | //node v8-options es6 module syntax currently under development (2016/06/25) 3 | let path = require('path'); 4 | let express = require('express'); 5 | let expressHbs = require('express-handlebars'); 6 | let cookieParser = require('cookie-parser'); 7 | let bodyParser = require('body-parser'); 8 | let loki = require('lokijs'); 9 | let routes = require('./routes'); 10 | const Eureka = require('eureka-js-client').Eureka; 11 | 12 | const client = new Eureka(); 13 | 14 | client.start(); 15 | 16 | //setup 17 | let database = new loki('database.loki', { autoload: true, autosave: true }); 18 | let app = express(); 19 | 20 | //settings 21 | app.set('port', process.env.PORT || 3000); 22 | app.set('views', path.join(__dirname, 'views')); 23 | 24 | //view engine & main template 25 | app.engine('.hbs', expressHbs({ defaultLayout: 'template', extname: '.hbs' })); 26 | app.set('view engine', '.hbs'); 27 | 28 | //middleware 29 | app.use(bodyParser.json()); 30 | app.use(bodyParser.urlencoded({ extended: false })); 31 | app.use(cookieParser()); 32 | app.use('/public', express.static('public')); 33 | 34 | //loki db reference for the router 35 | app.use((req, res, next) => { req.database = database; next(); }); 36 | 37 | //eureka client reference for the routher 38 | app.use((req, res, next) => { req.eurekaClient = client; next(); }); 39 | 40 | //router 41 | routes.create(app); 42 | 43 | // setTimeout(function() { 44 | // const instances = client.getInstancesByAppId('BOOKMARK-SERVICE'); 45 | // console.log(instances); 46 | // }, 3000); 47 | //server 48 | app.listen(app.get('port'), () => console.log('Listening on http://localhost:' + app.get('port'))); 49 | -------------------------------------------------------------------------------- /nodejs-bookservice/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const app = express(); 3 | const Eureka = require('eureka-js-client').Eureka; 4 | 5 | app.get('/books', function (req, res) { 6 | var books = []; 7 | books.push({ bookname: 'Nodejs Web Development', author: 'David Herron' }); 8 | books.push({ bookname: 'Mastering Web Application Development with Express ', author: 'Alexandru Vlăduțu' }); 9 | console.log('-----------') 10 | res.json(books); 11 | }) 12 | app.get('/info',function(req, res){ 13 | res.json({name:'book service',status:'ok'}); 14 | } ); 15 | app.get('/health',function(req, res){ 16 | res.json({name:'book service',status:'ok'}); 17 | } ); 18 | app.listen(3001, function () { 19 | console.log('Book Service app listening on port 3001!') 20 | }) 21 | const client = new Eureka({ 22 | instance: { 23 | instanceId: 'book-service-01', 24 | app: 'book-service', 25 | hostName: 'localhost', 26 | ipAddr: '127.0.0.1', 27 | // preferIpAddress: true, // default is false and host will be used. 28 | // homePageUrl: 'http://localhost:3001/info', 29 | statusPageUrl: 'http://localhost:3001/info', 30 | // healthCheckUrl: 'http://localhost:3001/info', 31 | port: { 32 | '$': 3001, 33 | '@enabled': 'true', 34 | }, 35 | vipAddress: 'book-service', // Important, otherwise spring-apigateway cannot find instance of book-service 36 | // secureVipAddress: 'book-service', 37 | dataCenterInfo: { 38 | '@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo', 39 | name: 'MyOwn', 40 | }, 41 | }, 42 | eureka: { 43 | fetchRegistry: false, 44 | host: 'localhost', 45 | port: 8761, 46 | servicePath: '/eureka/apps/' 47 | }, 48 | }); 49 | client.logger.level('debug'); 50 | client.start(function(error){ 51 | console.log(error || 'complete'); 52 | }); -------------------------------------------------------------------------------- /zipkin/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | zipkin 7 | 1.0.0-SNAPSHOT 8 | 9 | 10 | spring-boot-starter-parent 11 | org.springframework.boot 12 | 1.5.9.RELEASE 13 | 14 | 15 | 16 | 17 | 18 | org.springframework.cloud 19 | spring-cloud-starter-eureka 20 | 21 | 22 | 23 | io.zipkin.java 24 | zipkin-server 25 | 26 | 27 | 28 | io.zipkin.java 29 | zipkin-autoconfigure-ui 30 | runtime 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | org.springframework.cloud 39 | spring-cloud-dependencies 40 | ${spring-cloud-dependencies.version} 41 | pom 42 | import 43 | 44 | 45 | 46 | 47 | 48 | Edgware.RELEASE 49 | 50 | 51 | -------------------------------------------------------------------------------- /eureka-server/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.joe.eureka 7 | eureka-server 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | Eureka-Server 12 | Demo For Standalone Eureka 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 1.5.9.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | Edgware.RELEASE 26 | 27 | 28 | 29 | 30 | org.springframework.cloud 31 | spring-cloud-starter-eureka-server 32 | 33 | 34 | 35 | org.springframework.boot 36 | spring-boot-starter-test 37 | test 38 | 39 | 40 | 41 | 42 | 43 | 44 | org.springframework.cloud 45 | spring-cloud-dependencies 46 | ${spring-cloud.version} 47 | pom 48 | import 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | org.springframework.boot 57 | spring-boot-maven-plugin 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /eureka-server-peer2/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.joe.eureka 7 | eureka-server-peer2 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | Eureka-Server 12 | Demo Eureka Server Peer Awareness 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 1.5.9.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | Edgware.RELEASE 26 | 27 | 28 | 29 | 30 | org.springframework.cloud 31 | spring-cloud-starter-eureka-server 32 | 33 | 34 | 35 | org.springframework.boot 36 | spring-boot-starter-test 37 | test 38 | 39 | 40 | 41 | 42 | 43 | 44 | org.springframework.cloud 45 | spring-cloud-dependencies 46 | ${spring-cloud.version} 47 | pom 48 | import 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | org.springframework.boot 57 | spring-boot-maven-plugin 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /eureka-server-peer1/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.joe.eureka 7 | eureka-server-peer1 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | Eureka-Server-Peer1 12 | Demo Eureka Server Peer Awareness 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 1.5.9.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | Edgware.RELEASE 26 | 27 | 28 | 29 | 30 | org.springframework.cloud 31 | spring-cloud-starter-eureka-server 32 | 33 | 34 | 35 | org.springframework.boot 36 | spring-boot-starter-test 37 | test 38 | 39 | 40 | 41 | 42 | 43 | 44 | org.springframework.cloud 45 | spring-cloud-dependencies 46 | ${spring-cloud.version} 47 | pom 48 | import 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | org.springframework.boot 57 | spring-boot-maven-plugin 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /nodejs-web/utils/eureka-utils.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | bookMarkVipAdress: "bookmark-service", 3 | bookVipAdress: "book-service", 4 | getBookmarkRootUrl: function (client) { 5 | return this.getRootUrlByVipAdress(client, this.bookMarkVipAdress); 6 | }, 7 | getBookRootUrl: function(client){ 8 | return this.getRootUrlByVipAdress(client, this.bookVipAdress); 9 | }, 10 | getRootUrlByVipAdress: function (client, vipAddress) { 11 | var oneInstance = this.getOneInstanceFromAll(client, client.getInstancesByVipAddress(vipAddress)); 12 | return this.getServerPath(oneInstance); 13 | }, 14 | 15 | /** 16 | * 获取某个可用服务,随机取 17 | * @param client CoordinatorClient 18 | * @param instances 所有实例 19 | * @returns {*} 20 | */ 21 | 22 | getOneInstanceFromAll: function (client, instances) { 23 | if (instances != null) { 24 | var upInstances = []; 25 | for (var i = 0; i < instances.length; i++) { 26 | if (instances[i].status.toUpperCase() === "UP") { 27 | upInstances.push(instances[i]); 28 | } 29 | } 30 | if (upInstances.length > 0) { 31 | let instanceIndex = upInstances.length===1?0:Date.now()%(upInstances.length-1); 32 | return upInstances[instanceIndex]; 33 | } else { 34 | return ""; 35 | } 36 | } else { 37 | return ""; 38 | } 39 | }, 40 | 41 | /** Thanks to coordinator-node-client */ 42 | /** 43 | * 根据实例获取一个完整的ip方式的服务地址。 44 | * @param instance app的实例。 45 | * @returns {string} url地址,包括协议,ip和端口。例如:http://192.168.1.100:8080。 46 | */ 47 | getServerPath: function (instance) { 48 | var url = "", http = "http://", https = "https://"; 49 | if (instance) { 50 | if (instance.port && instance.port["@enabled"] == "true") { 51 | url = http + instance.ipAddr + ":" + instance.port["$"]; 52 | } else if (instance.securePort && instance.securePort["@enabled"] == "true") { 53 | url = https + instance.ipAddr + ":" + instance.securePort["$"]; 54 | } 55 | } 56 | return url; 57 | } 58 | 59 | 60 | } -------------------------------------------------------------------------------- /composite-service/src/main/java/com/joe/composite/CompositeServiceApplication.java: -------------------------------------------------------------------------------- 1 | package com.joe.composite; 2 | 3 | 4 | import java.util.List; 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.boot.CommandLineRunner; 8 | import org.springframework.boot.SpringApplication; 9 | import org.springframework.boot.autoconfigure.SpringBootApplication; 10 | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 11 | import org.springframework.cloud.netflix.feign.EnableFeignClients; 12 | import org.springframework.cloud.netflix.feign.FeignClient; 13 | import org.springframework.stereotype.Component; 14 | import org.springframework.web.bind.annotation.PathVariable; 15 | import org.springframework.web.bind.annotation.RequestMapping; 16 | import org.springframework.web.bind.annotation.RequestMethod; 17 | 18 | @SpringBootApplication 19 | @EnableEurekaClient 20 | @EnableFeignClients 21 | public class CompositeServiceApplication { 22 | 23 | public static void main(String[] args) { 24 | SpringApplication.run(CompositeServiceApplication.class, args); 25 | } 26 | } 27 | 28 | @Component 29 | class FeignExample implements CommandLineRunner { 30 | 31 | @Autowired 32 | private BookmarkClient bookmarkClient; 33 | 34 | @Override 35 | public void run(String... strings) throws Exception { 36 | 37 | this.bookmarkClient.getBookmarks("jlong").forEach((Bookmark mark) -> { 38 | System.out.println("----------------------"+mark); 39 | }); 40 | } 41 | } 42 | 43 | @FeignClient("bookmark-service") 44 | interface BookmarkClient { 45 | 46 | @RequestMapping(method = RequestMethod.GET, value = "/{userId}/bookmarks") 47 | List getBookmarks(@PathVariable("userId") String userId); 48 | } 49 | 50 | class Bookmark { 51 | private Long id; 52 | private String href, label, description, userId; 53 | 54 | @Override 55 | public String toString() { 56 | return "Bookmark{" + 57 | "id=" + id + 58 | ", href='" + href + '\'' + 59 | ", label='" + label + '\'' + 60 | ", description='" + description + '\'' + 61 | ", userId='" + userId + '\'' + 62 | '}'; 63 | } 64 | 65 | public Bookmark() { 66 | } 67 | 68 | public Long getId() { 69 | return id; 70 | } 71 | 72 | public String getHref() { 73 | return href; 74 | } 75 | 76 | public String getLabel() { 77 | return label; 78 | } 79 | 80 | public String getDescription() { 81 | return description; 82 | } 83 | 84 | public String getUserId() { 85 | return userId; 86 | } 87 | } 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /spring-apigateway/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.joe 7 | spring-apigateway 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | spring-apigateway 12 | Demo project for Spring Boot 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 1.5.9.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | Edgware.RELEASE 26 | 27 | 28 | 29 | 30 | org.springframework.cloud 31 | spring-cloud-starter-eureka 32 | 33 | 34 | org.springframework.cloud 35 | spring-cloud-starter-zuul 36 | 37 | 38 | org.springframework.cloud 39 | spring-cloud-starter-hystrix 40 | 41 | 42 | org.springframework.boot 43 | spring-boot-starter-actuator 44 | 45 | 46 | org.springframework.cloud 47 | spring-cloud-starter-sleuth 48 | 49 | 50 | org.springframework.cloud 51 | spring-cloud-sleuth-zipkin 52 | 53 | 54 | org.springframework.boot 55 | spring-boot-starter-test 56 | test 57 | 58 | 59 | 60 | 61 | 62 | 63 | org.springframework.cloud 64 | spring-cloud-dependencies 65 | ${spring-cloud.version} 66 | pom 67 | import 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | org.springframework.boot 76 | spring-boot-maven-plugin 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /bookmark-service/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.joe.bookmark 7 | bookmark-service 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | bookmark-service 12 | Demo project for Spring Boot 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 1.5.9.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | Edgware.RELEASE 26 | 27 | 28 | 29 | 30 | org.springframework.cloud 31 | spring-cloud-starter-eureka 32 | 33 | 34 | org.springframework.boot 35 | spring-boot-starter-web 36 | 37 | 38 | org.springframework.boot 39 | spring-boot-starter-actuator 40 | 41 | 42 | org.springframework.cloud 43 | spring-cloud-starter-sleuth 44 | 45 | 46 | org.springframework.cloud 47 | spring-cloud-sleuth-zipkin 48 | 49 | 50 | org.springframework.boot 51 | spring-boot-starter-data-jpa 52 | 53 | 54 | com.h2database 55 | h2 56 | 57 | 58 | 59 | 60 | 61 | 62 | org.springframework.cloud 63 | spring-cloud-dependencies 64 | ${spring-cloud.version} 65 | pom 66 | import 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | org.springframework.boot 75 | spring-boot-maven-plugin 76 | 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /nodejs-web/public/css/style.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Audiowide); 2 | @import url(https://fonts.googleapis.com/css?family=Roboto+Mono); 3 | 4 | html, body { 5 | height: 100%; 6 | margin: 0; 7 | background: #333; 8 | color: #9d936d; 9 | overflow: visible; 10 | -webkit-text-size-adjust: 100%; 11 | } 12 | #content-body { 13 | min-height: 80%; 14 | width: 800px; 15 | margin: 20px auto; 16 | } 17 | section { 18 | margin: 30px 0; 19 | } 20 | #copyright { 21 | margin: 30px 0; 22 | font-size: 14px; 23 | } 24 | #subcopy { 25 | padding: 5px 0; 26 | font-size: 10px; 27 | } 28 | 29 | /* ============================================================ */ 30 | 31 | header, footer { 32 | background: #222; 33 | color: #777; 34 | } 35 | nav { 36 | width: 800px; 37 | margin: 0 auto; 38 | } 39 | nav ul { 40 | margin: 0; 41 | padding: 0; 42 | } 43 | nav li { 44 | display: inline-block; 45 | padding: 10px 0; 46 | list-style: none; 47 | } 48 | nav ul li a { 49 | font-family: Audiowide; 50 | font-size: 16px; 51 | padding: 7px 14px; 52 | } 53 | header nav { text-align: left; } 54 | footer nav { text-align: center; } 55 | 56 | /* ============================================================ */ 57 | 58 | body, div, table, input { 59 | font-family: Roboto Mono; 60 | font-size: 16px; 61 | } 62 | a { 63 | color: #777; 64 | cursor: pointer; 65 | background: none; 66 | border: none; 67 | outline: none; 68 | text-decoration: none; 69 | } 70 | a:hover { 71 | color: #ccc; 72 | transition: 300ms; 73 | } 74 | 75 | h1, h2, h3, h4, h5 { 76 | font-family: Audiowide; 77 | margin: 5px; 78 | } 79 | h1 { font-size: 50px; } 80 | h2 { font-size: 34px; } 81 | h3 { font-size: 24px; } 82 | h4 { font-size: 18px; } 83 | h5 { font-size: 12px; } 84 | 85 | div, input, button { 86 | -webkit-box-sizing: border-box; 87 | -moz-box-sizing: border-box; 88 | -ms-box-sizing: border-box; 89 | -o-box-sizing: border-box; 90 | box-sizing: border-box; 91 | } 92 | input, button { 93 | padding: 5px 10px; 94 | border: none; 95 | outline: none; 96 | vertical-align: top; 97 | } 98 | button { 99 | font-family: Audiowide; 100 | font-size: 16px; 101 | background: #9d936d; 102 | color: #222; 103 | cursor: pointer; 104 | } 105 | button:hover { 106 | background: #ccc; 107 | transition: 300ms; 108 | } 109 | .intro-button { 110 | width: 250px; 111 | padding: 15px 10px; 112 | } 113 | 114 | /* ============================================================ */ 115 | 116 | table.users { 117 | width: 100%; 118 | border-collapse: collapse; 119 | } 120 | table.users tr:nth-child(odd) { background: rgba(0,0,0,.2); } 121 | table.users tr:nth-child(even) { background: rgba(0,0,0,.3); } 122 | table.users tr:hover { background: rgba(255,255,255,.1); } 123 | -------------------------------------------------------------------------------- /composite-service/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.joe.composite 7 | composite-service 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | composite-service 12 | Demo project for Spring Boot 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 1.5.9.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | Edgware.RELEASE 26 | 27 | 28 | 29 | 30 | org.springframework.boot 31 | spring-boot-starter-web 32 | 33 | 34 | org.springframework.cloud 35 | spring-cloud-starter-eureka 36 | 37 | 38 | org.springframework.boot 39 | spring-boot-starter-actuator 40 | 41 | 42 | org.springframework.cloud 43 | spring-cloud-starter-sleuth 44 | 45 | 46 | org.springframework.cloud 47 | spring-cloud-sleuth-zipkin 48 | 49 | 50 | commons-lang 51 | commons-lang 52 | 2.6 53 | 54 | 55 | org.springframework.cloud 56 | spring-cloud-starter-hystrix 57 | 58 | 59 | org.springframework.cloud 60 | spring-cloud-starter-feign 61 | 62 | 63 | org.springframework.boot 64 | spring-boot-starter-test 65 | test 66 | 67 | 68 | 69 | 70 | 71 | 72 | org.springframework.cloud 73 | spring-cloud-dependencies 74 | ${spring-cloud.version} 75 | pom 76 | import 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | org.springframework.boot 85 | spring-boot-maven-plugin 86 | 87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ##Spring Cloud Netflix / Nodejs 2 | 尝试使用Spring Cloud Netflix 加 Nodejs 技术栈混合搭建微服务。 (示例并无任何业务意义,只为做演示) 3 | > 此库为https://github.com/choelea/spring-cloud-netflix 的演进版,在此基础上增加了全链路跟踪,服务监控及跨服务日志跟踪 4 | **代码:** https://github.com/choelea/spring-cloud-nodejs/ 5 | **实现如下** 6 | 1. 服务注册发现 7 | 2. 服务间调用(feign) 8 | 3. 服务路由 9 | 4. 负载均衡 (eureka client 端) 10 | 5. 分布式链路调用监控系统 11 | 6. 跨服务日志跟踪 12 | 7. 服务监控 13 | 14 | ### 相关版本依赖 15 | **Spring Boot:** 1.5.9.RELEASE 16 | **Spring Cloud: ** Edgware.RELEASE 17 | **Nodejs:** v8.9.1 (本机是v8.9.1的,没有在其他版本上做测试) 18 | ## 架构图 (Architecture for microservice) 19 | > 此图仅仅是服务注册的,监控和全链路跟踪未添加 20 | 21 | ![架构图](http://img.blog.csdn.net/20170701223331565?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hvZWxlYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 22 | 23 | - **eureka-server:** Spring Boot + Cloud 技术栈搭建eureka 服务。(服务注册中心) 24 | - **bookmark-service:** Spring Boot 的微服务程序 25 | - **nodejs-bookservice** nodejs开发的微服务 26 | - **composite-service** 聚合服务 27 | - **spring-boot-admin-server** Spring Boot 监控 28 | - **zipkin** 分布式链路追踪服务 29 | - **spring-apigateway** Spring Boot + Cloud Netflix技术栈搭建的网关 30 | - **nodejs-web** nodejs开发的网关兼web应用 31 | 32 | > eureka-server-peer1 和 eureka-server-peer2 是用来验证eureka 集群的,可以选择启动这两个服务,不启动eureka-server服务。 33 | 34 | ## 程序运行 35 | 按照上面的顺序依次运行。 Spring Boot的程序运行:`mvn spring-boot:run` ; nodejs 程序运行:`npm start` 36 | > spring-boot-admin-server 的控制台会有异常抛出,是因为nodejs的 bookservice程序无法接入spring boot admin的监控的。 ---- 尽管restful的微服务号称技术平台无关,然而一旦选择了某些技术栈,基本也就限制了使用某个语言和某个技术。 37 | 38 | ### 测试spring-apigateway 39 | spring-apigateway 作为eureka的客户端结合zuul proxy的反向代理,为多个微服务提供一个单一的访问节点。 40 | 访问http://localhost:8080/bookmarks/jlong/bookmarks (结果同http://localhost:9098/jlong/bookmarks 完全一致) 41 | 42 | ``` 43 | [ 44 | { 45 | "userId": "jlong", 46 | "id": 2, 47 | "href": "http://some-other-hostjlong.com/", 48 | "description": "A description for jlong's link", 49 | "label": "jlong" 50 | } 51 | ] 52 | ``` 53 | 访问http://localhost:8080/books 反向代理至nodejs-bookservice的服务:http://localhost:3001/books 54 | 55 | ``` 56 | [ 57 | { 58 | "bookname": "Nodejs Web Development", 59 | "author": "David Herron" 60 | }, 61 | { 62 | "bookname": "Mastering Web Application Development with Express ", 63 | "author": "Alexandru Vlăduțu" 64 | } 65 | ] 66 | ``` 67 | 68 | ### 测试nodejs 69 | nodejs 采用eureka-js-client 组件获取/注册微服务。这里nodejs-web只作为服务的消费方,接入eureka server,消费上游的服务并展示给客户端(浏览器)。 70 | 查看nodejs-web作为eureka client 获取到注册的服务信息,通过向服务直接发起request来获取数据并展示。访问:http://localhost:3000 即可看如下显示: 71 | ![这里写图片描述](http://img.blog.csdn.net/20170701225905199?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hvZWxlYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 72 | 73 | ### 查看服务注册情况: 74 | 打开http://localhost:8761/ 75 | ![eureka 服务](http://img.blog.csdn.net/20170701224809235?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hvZWxlYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 76 | instance信息的获取主要通过下面的链接: 77 | - http://localhost:8761/eureka/apps 获取整个注册进来的服务的信息 78 | - http://localhost:8761/eureka/apps/{app} 获取某个服务的所有的实例信息 例如:http://localhost:8761/eureka/apps/BOOK-SERVICE 79 | - http://localhost:8761/eureka/apps/{app}/{instanceId} 获取具体的instance的信息 80 | > nodejs 使用eureka-js-client 来配置服务的instance信息,需要配置的信息更多,也更直观的反应了instance的信息;和通过连接(http://localhost:8761/eureka/apps)查到的基本一致。 81 | 82 | nodejs的微服务app,在eureka的client的配置中最好保持app,vipAddress(secureVipAddress 一般不会用上)一致。 83 | > 经测试发现,Spring Boot / Cloud Netflix 技术栈开发的apigateway,采用Zuul Reverse Proxy 反向代理的时候,必须app 和 vipAddress设置一致。 多个instance通过instanceId来区分。 84 | 85 | ### 监控Spring Boot服务 86 | 通过http://localhost:8088 可以进入Spring Boot的服务列表;选中服务点击Details可以查看详细信息。 87 | ### 调用链路跟踪 88 | 通过http://localhost:9411 查询服务间调用情况 89 | -------------------------------------------------------------------------------- /nodejs-web/database.loki: -------------------------------------------------------------------------------- 1 | {"filename":"database.loki","collections":[{"name":"users","data":[{"name":"Josephine Darakjy","city":"Brighton","state":"MI","zip":"48116","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":1},{"name":"Art Venere","city":"Bridgeport","state":"NJ","zip":"8014","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":2},{"name":"Lenna Paprocki","city":"Anchorage","state":"AK","zip":"99501","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":3},{"name":"Donette Foller","city":"Hamilton","state":"OH","zip":"45011","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":4},{"name":"Simona Morasca","city":"Ashland","state":"OH","zip":"44805","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":5},{"name":"Mitsue Tollner","city":"Chicago","state":"IL","zip":"60632","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":6},{"name":"Leota Dilliard","city":"San Jose","state":"CA","zip":"95111","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":7},{"name":"Sage Wieser","city":"Sioux Falls","state":"SD","zip":"57105","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":8},{"name":"Kris Marrier","city":"Baltimore","state":"MD","zip":"21224","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":9},{"name":"Minna Amigon","city":"Kulpsville","state":"PA","zip":"19443","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":10},{"name":"Abel Maclead","city":"Middle Island","state":"NY","zip":"11953","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":11},{"name":"Kiley Caldarera","city":"Los Angeles","state":"CA","zip":"90034","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":12},{"name":"Graciela Ruta","city":"Chagrin Falls","state":"OH","zip":"44023","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":13},{"name":"Cammy Albares","city":"Laredo","state":"TX","zip":"78045","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":14},{"name":"Mattie Poquette","city":"Phoenix","state":"AZ","zip":"85013","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":15},{"name":"Meaghan Garufi","city":"Mc Minnville","state":"TN","zip":"37110","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":16},{"name":"Gladys Rim","city":"Milwaukee","state":"WI","zip":"53207","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":17},{"name":"Yuki Whobrey","city":"Taylor","state":"MI","zip":"48180","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":18},{"name":"Fletcher Flosi","city":"Rockford","state":"IL","zip":"61109","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":19},{"name":"Bette Nicka","city":"Aston","state":"PA","zip":"19014","meta":{"revision":0,"created":1467055348208,"version":0},"$loki":20}],"idIndex":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"binaryIndices":{},"constraints":null,"uniqueNames":[],"transforms":{},"objType":"users","dirty":true,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":false,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableChangesApi":true,"autoupdate":false,"serializableIndices":true,"ttl":null,"maxId":20,"DynamicViews":[],"events":{"insert":[null],"update":[null],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[]}],"databaseVersion":1.5,"engineVersion":1.5,"autosave":true,"autosaveInterval":5000,"autosaveHandle":null,"throttledSaves":true,"options":{"autoload":true,"autosave":true,"serializationMethod":"normal","destructureDelimiter":"$<\n","recursiveWait":true,"recursiveWaitLimit":false,"recursiveWaitLimitDuration":2000,"started":1498788403810},"persistenceMethod":"fs","persistenceAdapter":null,"verbose":false,"events":{"init":[null],"loaded":[],"flushChanges":[],"close":[],"changes":[],"warning":[]},"ENV":"NODEJS"} -------------------------------------------------------------------------------- /spring-boot-admin-server/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | spring-boot-admin-server 7 | 0.0.1-SNAPSHOT 8 | jar 9 | 10 | spring-boot-admin-server 11 | Spring Boot Admin Server 12 | 13 | 14 | org.springframework.boot 15 | spring-boot-starter-parent 16 | 1.5.9.RELEASE 17 | 18 | 19 | 20 | 21 | UTF-8 22 | UTF-8 23 | 1.8 24 | 1.5.6 25 | 1.5.6 26 | Edgware.RELEASE 27 | 28 | 29 | 30 | 31 | org.springframework.cloud 32 | spring-cloud-starter-eureka 33 | 34 | 35 | org.springframework.boot 36 | spring-boot-starter-actuator 37 | 38 | 39 | org.springframework.boot 40 | spring-boot-starter 41 | 42 | 43 | 44 | 45 | de.codecentric 46 | spring-boot-admin-server 47 | ${spring-boot-admin-server.version} 48 | 49 | 50 | de.codecentric 51 | spring-boot-admin-server-ui 52 | ${spring-boot-admin-server.version} 53 | 54 | 55 | 56 | 57 | de.codecentric 58 | spring-boot-admin-server-ui-login 59 | ${spring-boot-admin-server.version} 60 | 61 | 62 | com.hazelcast 63 | hazelcast 64 | 65 | 66 | 67 | de.codecentric 68 | spring-boot-admin-starter-client 69 | ${spring-boot-admin-starter-client.version} 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | org.springframework.boot 78 | spring-boot-starter-test 79 | test 80 | 81 | 82 | 83 | 84 | 85 | 86 | org.springframework.cloud 87 | spring-cloud-dependencies 88 | ${spring-cloud.version} 89 | pom 90 | import 91 | 92 | 93 | 94 | 95 | 96 | 97 | org.springframework.boot 98 | spring-boot-maven-plugin 99 | 100 | 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /bookmark-service/src/main/java/com/joe/bookmark/BookmarkServiceApplication.java: -------------------------------------------------------------------------------- 1 | package com.joe.bookmark; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.boot.CommandLineRunner; 5 | import org.springframework.boot.SpringApplication; 6 | import org.springframework.boot.autoconfigure.SpringBootApplication; 7 | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 8 | import org.springframework.context.annotation.Bean; 9 | import org.springframework.data.jpa.repository.JpaRepository; 10 | import org.springframework.http.HttpStatus; 11 | import org.springframework.web.bind.annotation.*; 12 | 13 | import javax.persistence.Entity; 14 | import javax.persistence.GeneratedValue; 15 | import javax.persistence.Id; 16 | import java.util.Arrays; 17 | import java.util.Collection; 18 | import java.util.List; 19 | 20 | @SpringBootApplication 21 | @EnableEurekaClient 22 | public class BookmarkServiceApplication { 23 | 24 | public static void main(String[] args) { 25 | SpringApplication.run(BookmarkServiceApplication.class, args); 26 | } 27 | 28 | @Bean 29 | CommandLineRunner init(BookmarkRepository bookmarkRepository) { 30 | return args -> { 31 | bookmarkRepository.deleteAll(); 32 | 33 | Arrays.asList("mstine", "jlong").forEach(n -> 34 | bookmarkRepository.save(new Bookmark(n, 35 | "http://some-other-host" + n + ".com/", 36 | "A description for " + n + "'s link", 37 | n))); 38 | }; 39 | } 40 | } 41 | 42 | /** 43 | * Just for testing 44 | * @author Administrator 45 | * 46 | */ 47 | @RestController 48 | class ErrorController{ 49 | @RequestMapping(value = "/500", method = RequestMethod.GET) 50 | @ResponseStatus(code=HttpStatus.INTERNAL_SERVER_ERROR) 51 | Bookmark internalError() { 52 | return new Bookmark("000","wrong","Internal Error Happened","No lable"); 53 | } 54 | } 55 | @RestController 56 | @RequestMapping("/{userId}/bookmarks") 57 | class BookmarkRestController { 58 | 59 | @Autowired 60 | private BookmarkRepository bookmarkRepository; 61 | 62 | @RequestMapping(method = RequestMethod.GET) 63 | Collection getBookmarks(@PathVariable String userId) { 64 | return this.bookmarkRepository.findByUserId(userId); 65 | } 66 | 67 | @RequestMapping(value = "/{bookmarkId}", method = RequestMethod.GET) 68 | Bookmark getBookmark(@PathVariable String userId, 69 | @PathVariable Long bookmarkId) { 70 | return this.bookmarkRepository.findByUserIdAndId(userId, bookmarkId); 71 | } 72 | 73 | @RequestMapping(method = RequestMethod.POST) 74 | Bookmark createBookmark(@PathVariable String userId, 75 | @RequestBody Bookmark bookmark) { 76 | 77 | Bookmark bookmarkInstance = new Bookmark( 78 | userId, 79 | bookmark.getHref(), 80 | bookmark.getDescription(), 81 | bookmark.getLabel()); 82 | 83 | return this.bookmarkRepository.save(bookmarkInstance); 84 | } 85 | 86 | } 87 | 88 | 89 | interface BookmarkRepository extends JpaRepository { 90 | 91 | Bookmark findByUserIdAndId(String userId, Long id); 92 | 93 | List findByUserId(String userId); 94 | } 95 | 96 | @Entity 97 | class Bookmark { 98 | 99 | private String userId; 100 | 101 | @Id 102 | @GeneratedValue 103 | private Long id; 104 | 105 | private String href; 106 | 107 | private String description; 108 | 109 | Bookmark() { 110 | } 111 | 112 | public Bookmark(String userId, String href, 113 | String description, String label) { 114 | this.userId = userId; 115 | this.href = href; 116 | this.description = description; 117 | this.label = label; 118 | } 119 | 120 | public String getLabel() { 121 | return label; 122 | } 123 | 124 | public String getUserId() { 125 | return userId; 126 | } 127 | 128 | public Long getId() { 129 | return id; 130 | } 131 | 132 | public String getHref() { 133 | return href; 134 | } 135 | 136 | public String getDescription() { 137 | return description; 138 | } 139 | 140 | private String label; 141 | } -------------------------------------------------------------------------------- /spring-apigateway/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 39 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 40 | 41 | @REM set %HOME% to equivalent of $HOME 42 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 43 | 44 | @REM Execute a user defined script before this one 45 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 46 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 47 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 48 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 49 | :skipRcPre 50 | 51 | @setlocal 52 | 53 | set ERROR_CODE=0 54 | 55 | @REM To isolate internal variables from possible post scripts, we use another setlocal 56 | @setlocal 57 | 58 | @REM ==== START VALIDATION ==== 59 | if not "%JAVA_HOME%" == "" goto OkJHome 60 | 61 | echo. 62 | echo Error: JAVA_HOME not found in your environment. >&2 63 | echo Please set the JAVA_HOME variable in your environment to match the >&2 64 | echo location of your Java installation. >&2 65 | echo. 66 | goto error 67 | 68 | :OkJHome 69 | if exist "%JAVA_HOME%\bin\java.exe" goto init 70 | 71 | echo. 72 | echo Error: JAVA_HOME is set to an invalid directory. >&2 73 | echo JAVA_HOME = "%JAVA_HOME%" >&2 74 | echo Please set the JAVA_HOME variable in your environment to match the >&2 75 | echo location of your Java installation. >&2 76 | echo. 77 | goto error 78 | 79 | @REM ==== END VALIDATION ==== 80 | 81 | :init 82 | 83 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 84 | @REM Fallback to current working directory if not found. 85 | 86 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 87 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 88 | 89 | set EXEC_DIR=%CD% 90 | set WDIR=%EXEC_DIR% 91 | :findBaseDir 92 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 93 | cd .. 94 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 95 | set WDIR=%CD% 96 | goto findBaseDir 97 | 98 | :baseDirFound 99 | set MAVEN_PROJECTBASEDIR=%WDIR% 100 | cd "%EXEC_DIR%" 101 | goto endDetectBaseDir 102 | 103 | :baseDirNotFound 104 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 105 | cd "%EXEC_DIR%" 106 | 107 | :endDetectBaseDir 108 | 109 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 110 | 111 | @setlocal EnableExtensions EnableDelayedExpansion 112 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 113 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 114 | 115 | :endReadAdditionalConfig 116 | 117 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 118 | 119 | set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" 120 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 121 | 122 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* 123 | if ERRORLEVEL 1 goto error 124 | goto end 125 | 126 | :error 127 | set ERROR_CODE=1 128 | 129 | :end 130 | @endlocal & set ERROR_CODE=%ERROR_CODE% 131 | 132 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 133 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 134 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 135 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 136 | :skipRcPost 137 | 138 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 139 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 140 | 141 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 142 | 143 | exit /B %ERROR_CODE% 144 | -------------------------------------------------------------------------------- /bookmark-service/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 39 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 40 | 41 | @REM set %HOME% to equivalent of $HOME 42 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 43 | 44 | @REM Execute a user defined script before this one 45 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 46 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 47 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 48 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 49 | :skipRcPre 50 | 51 | @setlocal 52 | 53 | set ERROR_CODE=0 54 | 55 | @REM To isolate internal variables from possible post scripts, we use another setlocal 56 | @setlocal 57 | 58 | @REM ==== START VALIDATION ==== 59 | if not "%JAVA_HOME%" == "" goto OkJHome 60 | 61 | echo. 62 | echo Error: JAVA_HOME not found in your environment. >&2 63 | echo Please set the JAVA_HOME variable in your environment to match the >&2 64 | echo location of your Java installation. >&2 65 | echo. 66 | goto error 67 | 68 | :OkJHome 69 | if exist "%JAVA_HOME%\bin\java.exe" goto init 70 | 71 | echo. 72 | echo Error: JAVA_HOME is set to an invalid directory. >&2 73 | echo JAVA_HOME = "%JAVA_HOME%" >&2 74 | echo Please set the JAVA_HOME variable in your environment to match the >&2 75 | echo location of your Java installation. >&2 76 | echo. 77 | goto error 78 | 79 | @REM ==== END VALIDATION ==== 80 | 81 | :init 82 | 83 | set MAVEN_CMD_LINE_ARGS=%* 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | 121 | set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar"" 122 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 123 | 124 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS% 125 | if ERRORLEVEL 1 goto error 126 | goto end 127 | 128 | :error 129 | set ERROR_CODE=1 130 | 131 | :end 132 | @endlocal & set ERROR_CODE=%ERROR_CODE% 133 | 134 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 135 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 136 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 137 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 138 | :skipRcPost 139 | 140 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 141 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 142 | 143 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 144 | 145 | exit /B %ERROR_CODE% -------------------------------------------------------------------------------- /composite-service/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 39 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 40 | 41 | @REM set %HOME% to equivalent of $HOME 42 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 43 | 44 | @REM Execute a user defined script before this one 45 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 46 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 47 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 48 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 49 | :skipRcPre 50 | 51 | @setlocal 52 | 53 | set ERROR_CODE=0 54 | 55 | @REM To isolate internal variables from possible post scripts, we use another setlocal 56 | @setlocal 57 | 58 | @REM ==== START VALIDATION ==== 59 | if not "%JAVA_HOME%" == "" goto OkJHome 60 | 61 | echo. 62 | echo Error: JAVA_HOME not found in your environment. >&2 63 | echo Please set the JAVA_HOME variable in your environment to match the >&2 64 | echo location of your Java installation. >&2 65 | echo. 66 | goto error 67 | 68 | :OkJHome 69 | if exist "%JAVA_HOME%\bin\java.exe" goto init 70 | 71 | echo. 72 | echo Error: JAVA_HOME is set to an invalid directory. >&2 73 | echo JAVA_HOME = "%JAVA_HOME%" >&2 74 | echo Please set the JAVA_HOME variable in your environment to match the >&2 75 | echo location of your Java installation. >&2 76 | echo. 77 | goto error 78 | 79 | @REM ==== END VALIDATION ==== 80 | 81 | :init 82 | 83 | set MAVEN_CMD_LINE_ARGS=%* 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | 121 | set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar"" 122 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 123 | 124 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS% 125 | if ERRORLEVEL 1 goto error 126 | goto end 127 | 128 | :error 129 | set ERROR_CODE=1 130 | 131 | :end 132 | @endlocal & set ERROR_CODE=%ERROR_CODE% 133 | 134 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 135 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 136 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 137 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 138 | :skipRcPost 139 | 140 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 141 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 142 | 143 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 144 | 145 | exit /B %ERROR_CODE% -------------------------------------------------------------------------------- /eureka-server/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 39 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 40 | 41 | @REM set %HOME% to equivalent of $HOME 42 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 43 | 44 | @REM Execute a user defined script before this one 45 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 46 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 47 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 48 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 49 | :skipRcPre 50 | 51 | @setlocal 52 | 53 | set ERROR_CODE=0 54 | 55 | @REM To isolate internal variables from possible post scripts, we use another setlocal 56 | @setlocal 57 | 58 | @REM ==== START VALIDATION ==== 59 | if not "%JAVA_HOME%" == "" goto OkJHome 60 | 61 | echo. 62 | echo Error: JAVA_HOME not found in your environment. >&2 63 | echo Please set the JAVA_HOME variable in your environment to match the >&2 64 | echo location of your Java installation. >&2 65 | echo. 66 | goto error 67 | 68 | :OkJHome 69 | if exist "%JAVA_HOME%\bin\java.exe" goto init 70 | 71 | echo. 72 | echo Error: JAVA_HOME is set to an invalid directory. >&2 73 | echo JAVA_HOME = "%JAVA_HOME%" >&2 74 | echo Please set the JAVA_HOME variable in your environment to match the >&2 75 | echo location of your Java installation. >&2 76 | echo. 77 | goto error 78 | 79 | @REM ==== END VALIDATION ==== 80 | 81 | :init 82 | 83 | set MAVEN_CMD_LINE_ARGS=%* 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | 121 | set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar"" 122 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 123 | 124 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS% 125 | if ERRORLEVEL 1 goto error 126 | goto end 127 | 128 | :error 129 | set ERROR_CODE=1 130 | 131 | :end 132 | @endlocal & set ERROR_CODE=%ERROR_CODE% 133 | 134 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 135 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 136 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 137 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 138 | :skipRcPost 139 | 140 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 141 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 142 | 143 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 144 | 145 | exit /B %ERROR_CODE% -------------------------------------------------------------------------------- /eureka-server-peer1/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 39 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 40 | 41 | @REM set %HOME% to equivalent of $HOME 42 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 43 | 44 | @REM Execute a user defined script before this one 45 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 46 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 47 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 48 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 49 | :skipRcPre 50 | 51 | @setlocal 52 | 53 | set ERROR_CODE=0 54 | 55 | @REM To isolate internal variables from possible post scripts, we use another setlocal 56 | @setlocal 57 | 58 | @REM ==== START VALIDATION ==== 59 | if not "%JAVA_HOME%" == "" goto OkJHome 60 | 61 | echo. 62 | echo Error: JAVA_HOME not found in your environment. >&2 63 | echo Please set the JAVA_HOME variable in your environment to match the >&2 64 | echo location of your Java installation. >&2 65 | echo. 66 | goto error 67 | 68 | :OkJHome 69 | if exist "%JAVA_HOME%\bin\java.exe" goto init 70 | 71 | echo. 72 | echo Error: JAVA_HOME is set to an invalid directory. >&2 73 | echo JAVA_HOME = "%JAVA_HOME%" >&2 74 | echo Please set the JAVA_HOME variable in your environment to match the >&2 75 | echo location of your Java installation. >&2 76 | echo. 77 | goto error 78 | 79 | @REM ==== END VALIDATION ==== 80 | 81 | :init 82 | 83 | set MAVEN_CMD_LINE_ARGS=%* 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | 121 | set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar"" 122 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 123 | 124 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS% 125 | if ERRORLEVEL 1 goto error 126 | goto end 127 | 128 | :error 129 | set ERROR_CODE=1 130 | 131 | :end 132 | @endlocal & set ERROR_CODE=%ERROR_CODE% 133 | 134 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 135 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 136 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 137 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 138 | :skipRcPost 139 | 140 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 141 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 142 | 143 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 144 | 145 | exit /B %ERROR_CODE% -------------------------------------------------------------------------------- /eureka-server-peer2/mvnw.cmd: -------------------------------------------------------------------------------- 1 | @REM ---------------------------------------------------------------------------- 2 | @REM Licensed to the Apache Software Foundation (ASF) under one 3 | @REM or more contributor license agreements. See the NOTICE file 4 | @REM distributed with this work for additional information 5 | @REM regarding copyright ownership. The ASF licenses this file 6 | @REM to you under the Apache License, Version 2.0 (the 7 | @REM "License"); you may not use this file except in compliance 8 | @REM with the License. You may obtain a copy of the License at 9 | @REM 10 | @REM http://www.apache.org/licenses/LICENSE-2.0 11 | @REM 12 | @REM Unless required by applicable law or agreed to in writing, 13 | @REM software distributed under the License is distributed on an 14 | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | @REM KIND, either express or implied. See the License for the 16 | @REM specific language governing permissions and limitations 17 | @REM under the License. 18 | @REM ---------------------------------------------------------------------------- 19 | 20 | @REM ---------------------------------------------------------------------------- 21 | @REM Maven2 Start Up Batch script 22 | @REM 23 | @REM Required ENV vars: 24 | @REM JAVA_HOME - location of a JDK home dir 25 | @REM 26 | @REM Optional ENV vars 27 | @REM M2_HOME - location of maven2's installed home dir 28 | @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 29 | @REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 30 | @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 31 | @REM e.g. to debug Maven itself, use 32 | @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 33 | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files 34 | @REM ---------------------------------------------------------------------------- 35 | 36 | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' 37 | @echo off 38 | @REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 39 | @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 40 | 41 | @REM set %HOME% to equivalent of $HOME 42 | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") 43 | 44 | @REM Execute a user defined script before this one 45 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre 46 | @REM check for pre script, once with legacy .bat ending and once with .cmd ending 47 | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" 48 | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" 49 | :skipRcPre 50 | 51 | @setlocal 52 | 53 | set ERROR_CODE=0 54 | 55 | @REM To isolate internal variables from possible post scripts, we use another setlocal 56 | @setlocal 57 | 58 | @REM ==== START VALIDATION ==== 59 | if not "%JAVA_HOME%" == "" goto OkJHome 60 | 61 | echo. 62 | echo Error: JAVA_HOME not found in your environment. >&2 63 | echo Please set the JAVA_HOME variable in your environment to match the >&2 64 | echo location of your Java installation. >&2 65 | echo. 66 | goto error 67 | 68 | :OkJHome 69 | if exist "%JAVA_HOME%\bin\java.exe" goto init 70 | 71 | echo. 72 | echo Error: JAVA_HOME is set to an invalid directory. >&2 73 | echo JAVA_HOME = "%JAVA_HOME%" >&2 74 | echo Please set the JAVA_HOME variable in your environment to match the >&2 75 | echo location of your Java installation. >&2 76 | echo. 77 | goto error 78 | 79 | @REM ==== END VALIDATION ==== 80 | 81 | :init 82 | 83 | set MAVEN_CMD_LINE_ARGS=%* 84 | 85 | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". 86 | @REM Fallback to current working directory if not found. 87 | 88 | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% 89 | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir 90 | 91 | set EXEC_DIR=%CD% 92 | set WDIR=%EXEC_DIR% 93 | :findBaseDir 94 | IF EXIST "%WDIR%"\.mvn goto baseDirFound 95 | cd .. 96 | IF "%WDIR%"=="%CD%" goto baseDirNotFound 97 | set WDIR=%CD% 98 | goto findBaseDir 99 | 100 | :baseDirFound 101 | set MAVEN_PROJECTBASEDIR=%WDIR% 102 | cd "%EXEC_DIR%" 103 | goto endDetectBaseDir 104 | 105 | :baseDirNotFound 106 | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% 107 | cd "%EXEC_DIR%" 108 | 109 | :endDetectBaseDir 110 | 111 | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig 112 | 113 | @setlocal EnableExtensions EnableDelayedExpansion 114 | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a 115 | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% 116 | 117 | :endReadAdditionalConfig 118 | 119 | SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" 120 | 121 | set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar"" 122 | set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 123 | 124 | %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS% 125 | if ERRORLEVEL 1 goto error 126 | goto end 127 | 128 | :error 129 | set ERROR_CODE=1 130 | 131 | :end 132 | @endlocal & set ERROR_CODE=%ERROR_CODE% 133 | 134 | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost 135 | @REM check for post script, once with legacy .bat ending and once with .cmd ending 136 | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" 137 | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" 138 | :skipRcPost 139 | 140 | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' 141 | if "%MAVEN_BATCH_PAUSE%" == "on" pause 142 | 143 | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% 144 | 145 | exit /B %ERROR_CODE% -------------------------------------------------------------------------------- /spring-apigateway/mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven2 Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home 58 | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html 59 | if [ -z "$JAVA_HOME" ]; then 60 | if [ -x "/usr/libexec/java_home" ]; then 61 | export JAVA_HOME="`/usr/libexec/java_home`" 62 | else 63 | export JAVA_HOME="/Library/Java/Home" 64 | fi 65 | fi 66 | ;; 67 | esac 68 | 69 | if [ -z "$JAVA_HOME" ] ; then 70 | if [ -r /etc/gentoo-release ] ; then 71 | JAVA_HOME=`java-config --jre-home` 72 | fi 73 | fi 74 | 75 | if [ -z "$M2_HOME" ] ; then 76 | ## resolve links - $0 may be a link to maven's home 77 | PRG="$0" 78 | 79 | # need this for relative symlinks 80 | while [ -h "$PRG" ] ; do 81 | ls=`ls -ld "$PRG"` 82 | link=`expr "$ls" : '.*-> \(.*\)$'` 83 | if expr "$link" : '/.*' > /dev/null; then 84 | PRG="$link" 85 | else 86 | PRG="`dirname "$PRG"`/$link" 87 | fi 88 | done 89 | 90 | saveddir=`pwd` 91 | 92 | M2_HOME=`dirname "$PRG"`/.. 93 | 94 | # make it fully qualified 95 | M2_HOME=`cd "$M2_HOME" && pwd` 96 | 97 | cd "$saveddir" 98 | # echo Using m2 at $M2_HOME 99 | fi 100 | 101 | # For Cygwin, ensure paths are in UNIX format before anything is touched 102 | if $cygwin ; then 103 | [ -n "$M2_HOME" ] && 104 | M2_HOME=`cygpath --unix "$M2_HOME"` 105 | [ -n "$JAVA_HOME" ] && 106 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 107 | [ -n "$CLASSPATH" ] && 108 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 109 | fi 110 | 111 | # For Migwn, ensure paths are in UNIX format before anything is touched 112 | if $mingw ; then 113 | [ -n "$M2_HOME" ] && 114 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 115 | [ -n "$JAVA_HOME" ] && 116 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 117 | # TODO classpath? 118 | fi 119 | 120 | if [ -z "$JAVA_HOME" ]; then 121 | javaExecutable="`which javac`" 122 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 123 | # readlink(1) is not available as standard on Solaris 10. 124 | readLink=`which readlink` 125 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 126 | if $darwin ; then 127 | javaHome="`dirname \"$javaExecutable\"`" 128 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 129 | else 130 | javaExecutable="`readlink -f \"$javaExecutable\"`" 131 | fi 132 | javaHome="`dirname \"$javaExecutable\"`" 133 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 134 | JAVA_HOME="$javaHome" 135 | export JAVA_HOME 136 | fi 137 | fi 138 | fi 139 | 140 | if [ -z "$JAVACMD" ] ; then 141 | if [ -n "$JAVA_HOME" ] ; then 142 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 143 | # IBM's JDK on AIX uses strange locations for the executables 144 | JAVACMD="$JAVA_HOME/jre/sh/java" 145 | else 146 | JAVACMD="$JAVA_HOME/bin/java" 147 | fi 148 | else 149 | JAVACMD="`which java`" 150 | fi 151 | fi 152 | 153 | if [ ! -x "$JAVACMD" ] ; then 154 | echo "Error: JAVA_HOME is not defined correctly." >&2 155 | echo " We cannot execute $JAVACMD" >&2 156 | exit 1 157 | fi 158 | 159 | if [ -z "$JAVA_HOME" ] ; then 160 | echo "Warning: JAVA_HOME environment variable is not set." 161 | fi 162 | 163 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 164 | 165 | # traverses directory structure from process work directory to filesystem root 166 | # first directory with .mvn subdirectory is considered project base directory 167 | find_maven_basedir() { 168 | 169 | if [ -z "$1" ] 170 | then 171 | echo "Path not specified to find_maven_basedir" 172 | return 1 173 | fi 174 | 175 | basedir="$1" 176 | wdir="$1" 177 | while [ "$wdir" != '/' ] ; do 178 | if [ -d "$wdir"/.mvn ] ; then 179 | basedir=$wdir 180 | break 181 | fi 182 | # workaround for JBEAP-8937 (on Solaris 10/Sparc) 183 | if [ -d "${wdir}" ]; then 184 | wdir=`cd "$wdir/.."; pwd` 185 | fi 186 | # end of workaround 187 | done 188 | echo "${basedir}" 189 | } 190 | 191 | # concatenates all lines of a file 192 | concat_lines() { 193 | if [ -f "$1" ]; then 194 | echo "$(tr -s '\n' ' ' < "$1")" 195 | fi 196 | } 197 | 198 | BASE_DIR=`find_maven_basedir "$(pwd)"` 199 | if [ -z "$BASE_DIR" ]; then 200 | exit 1; 201 | fi 202 | 203 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} 204 | echo $MAVEN_PROJECTBASEDIR 205 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 206 | 207 | # For Cygwin, switch paths to Windows format before running java 208 | if $cygwin; then 209 | [ -n "$M2_HOME" ] && 210 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 211 | [ -n "$JAVA_HOME" ] && 212 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 213 | [ -n "$CLASSPATH" ] && 214 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 215 | [ -n "$MAVEN_PROJECTBASEDIR" ] && 216 | MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` 217 | fi 218 | 219 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 220 | 221 | exec "$JAVACMD" \ 222 | $MAVEN_OPTS \ 223 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 224 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 225 | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" 226 | -------------------------------------------------------------------------------- /eureka-server/mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven2 Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # 58 | # Look for the Apple JDKs first to preserve the existing behaviour, and then look 59 | # for the new JDKs provided by Oracle. 60 | # 61 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then 62 | # 63 | # Apple JDKs 64 | # 65 | export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home 66 | fi 67 | 68 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then 69 | # 70 | # Apple JDKs 71 | # 72 | export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 73 | fi 74 | 75 | if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then 76 | # 77 | # Oracle JDKs 78 | # 79 | export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 80 | fi 81 | 82 | if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then 83 | # 84 | # Apple JDKs 85 | # 86 | export JAVA_HOME=`/usr/libexec/java_home` 87 | fi 88 | ;; 89 | esac 90 | 91 | if [ -z "$JAVA_HOME" ] ; then 92 | if [ -r /etc/gentoo-release ] ; then 93 | JAVA_HOME=`java-config --jre-home` 94 | fi 95 | fi 96 | 97 | if [ -z "$M2_HOME" ] ; then 98 | ## resolve links - $0 may be a link to maven's home 99 | PRG="$0" 100 | 101 | # need this for relative symlinks 102 | while [ -h "$PRG" ] ; do 103 | ls=`ls -ld "$PRG"` 104 | link=`expr "$ls" : '.*-> \(.*\)$'` 105 | if expr "$link" : '/.*' > /dev/null; then 106 | PRG="$link" 107 | else 108 | PRG="`dirname "$PRG"`/$link" 109 | fi 110 | done 111 | 112 | saveddir=`pwd` 113 | 114 | M2_HOME=`dirname "$PRG"`/.. 115 | 116 | # make it fully qualified 117 | M2_HOME=`cd "$M2_HOME" && pwd` 118 | 119 | cd "$saveddir" 120 | # echo Using m2 at $M2_HOME 121 | fi 122 | 123 | # For Cygwin, ensure paths are in UNIX format before anything is touched 124 | if $cygwin ; then 125 | [ -n "$M2_HOME" ] && 126 | M2_HOME=`cygpath --unix "$M2_HOME"` 127 | [ -n "$JAVA_HOME" ] && 128 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 129 | [ -n "$CLASSPATH" ] && 130 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 131 | fi 132 | 133 | # For Migwn, ensure paths are in UNIX format before anything is touched 134 | if $mingw ; then 135 | [ -n "$M2_HOME" ] && 136 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 137 | [ -n "$JAVA_HOME" ] && 138 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 139 | # TODO classpath? 140 | fi 141 | 142 | if [ -z "$JAVA_HOME" ]; then 143 | javaExecutable="`which javac`" 144 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 145 | # readlink(1) is not available as standard on Solaris 10. 146 | readLink=`which readlink` 147 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 148 | if $darwin ; then 149 | javaHome="`dirname \"$javaExecutable\"`" 150 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 151 | else 152 | javaExecutable="`readlink -f \"$javaExecutable\"`" 153 | fi 154 | javaHome="`dirname \"$javaExecutable\"`" 155 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 156 | JAVA_HOME="$javaHome" 157 | export JAVA_HOME 158 | fi 159 | fi 160 | fi 161 | 162 | if [ -z "$JAVACMD" ] ; then 163 | if [ -n "$JAVA_HOME" ] ; then 164 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 165 | # IBM's JDK on AIX uses strange locations for the executables 166 | JAVACMD="$JAVA_HOME/jre/sh/java" 167 | else 168 | JAVACMD="$JAVA_HOME/bin/java" 169 | fi 170 | else 171 | JAVACMD="`which java`" 172 | fi 173 | fi 174 | 175 | if [ ! -x "$JAVACMD" ] ; then 176 | echo "Error: JAVA_HOME is not defined correctly." >&2 177 | echo " We cannot execute $JAVACMD" >&2 178 | exit 1 179 | fi 180 | 181 | if [ -z "$JAVA_HOME" ] ; then 182 | echo "Warning: JAVA_HOME environment variable is not set." 183 | fi 184 | 185 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 186 | 187 | # For Cygwin, switch paths to Windows format before running java 188 | if $cygwin; then 189 | [ -n "$M2_HOME" ] && 190 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 191 | [ -n "$JAVA_HOME" ] && 192 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 193 | [ -n "$CLASSPATH" ] && 194 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 195 | fi 196 | 197 | # traverses directory structure from process work directory to filesystem root 198 | # first directory with .mvn subdirectory is considered project base directory 199 | find_maven_basedir() { 200 | local basedir=$(pwd) 201 | local wdir=$(pwd) 202 | while [ "$wdir" != '/' ] ; do 203 | if [ -d "$wdir"/.mvn ] ; then 204 | basedir=$wdir 205 | break 206 | fi 207 | wdir=$(cd "$wdir/.."; pwd) 208 | done 209 | echo "${basedir}" 210 | } 211 | 212 | # concatenates all lines of a file 213 | concat_lines() { 214 | if [ -f "$1" ]; then 215 | echo "$(tr -s '\n' ' ' < "$1")" 216 | fi 217 | } 218 | 219 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} 220 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 221 | 222 | # Provide a "standardized" way to retrieve the CLI args that will 223 | # work with both Windows and non-Windows executions. 224 | MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" 225 | export MAVEN_CMD_LINE_ARGS 226 | 227 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 228 | 229 | exec "$JAVACMD" \ 230 | $MAVEN_OPTS \ 231 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 232 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 233 | ${WRAPPER_LAUNCHER} "$@" 234 | -------------------------------------------------------------------------------- /bookmark-service/mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven2 Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # 58 | # Look for the Apple JDKs first to preserve the existing behaviour, and then look 59 | # for the new JDKs provided by Oracle. 60 | # 61 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then 62 | # 63 | # Apple JDKs 64 | # 65 | export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home 66 | fi 67 | 68 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then 69 | # 70 | # Apple JDKs 71 | # 72 | export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 73 | fi 74 | 75 | if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then 76 | # 77 | # Oracle JDKs 78 | # 79 | export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 80 | fi 81 | 82 | if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then 83 | # 84 | # Apple JDKs 85 | # 86 | export JAVA_HOME=`/usr/libexec/java_home` 87 | fi 88 | ;; 89 | esac 90 | 91 | if [ -z "$JAVA_HOME" ] ; then 92 | if [ -r /etc/gentoo-release ] ; then 93 | JAVA_HOME=`java-config --jre-home` 94 | fi 95 | fi 96 | 97 | if [ -z "$M2_HOME" ] ; then 98 | ## resolve links - $0 may be a link to maven's home 99 | PRG="$0" 100 | 101 | # need this for relative symlinks 102 | while [ -h "$PRG" ] ; do 103 | ls=`ls -ld "$PRG"` 104 | link=`expr "$ls" : '.*-> \(.*\)$'` 105 | if expr "$link" : '/.*' > /dev/null; then 106 | PRG="$link" 107 | else 108 | PRG="`dirname "$PRG"`/$link" 109 | fi 110 | done 111 | 112 | saveddir=`pwd` 113 | 114 | M2_HOME=`dirname "$PRG"`/.. 115 | 116 | # make it fully qualified 117 | M2_HOME=`cd "$M2_HOME" && pwd` 118 | 119 | cd "$saveddir" 120 | # echo Using m2 at $M2_HOME 121 | fi 122 | 123 | # For Cygwin, ensure paths are in UNIX format before anything is touched 124 | if $cygwin ; then 125 | [ -n "$M2_HOME" ] && 126 | M2_HOME=`cygpath --unix "$M2_HOME"` 127 | [ -n "$JAVA_HOME" ] && 128 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 129 | [ -n "$CLASSPATH" ] && 130 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 131 | fi 132 | 133 | # For Migwn, ensure paths are in UNIX format before anything is touched 134 | if $mingw ; then 135 | [ -n "$M2_HOME" ] && 136 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 137 | [ -n "$JAVA_HOME" ] && 138 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 139 | # TODO classpath? 140 | fi 141 | 142 | if [ -z "$JAVA_HOME" ]; then 143 | javaExecutable="`which javac`" 144 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 145 | # readlink(1) is not available as standard on Solaris 10. 146 | readLink=`which readlink` 147 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 148 | if $darwin ; then 149 | javaHome="`dirname \"$javaExecutable\"`" 150 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 151 | else 152 | javaExecutable="`readlink -f \"$javaExecutable\"`" 153 | fi 154 | javaHome="`dirname \"$javaExecutable\"`" 155 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 156 | JAVA_HOME="$javaHome" 157 | export JAVA_HOME 158 | fi 159 | fi 160 | fi 161 | 162 | if [ -z "$JAVACMD" ] ; then 163 | if [ -n "$JAVA_HOME" ] ; then 164 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 165 | # IBM's JDK on AIX uses strange locations for the executables 166 | JAVACMD="$JAVA_HOME/jre/sh/java" 167 | else 168 | JAVACMD="$JAVA_HOME/bin/java" 169 | fi 170 | else 171 | JAVACMD="`which java`" 172 | fi 173 | fi 174 | 175 | if [ ! -x "$JAVACMD" ] ; then 176 | echo "Error: JAVA_HOME is not defined correctly." >&2 177 | echo " We cannot execute $JAVACMD" >&2 178 | exit 1 179 | fi 180 | 181 | if [ -z "$JAVA_HOME" ] ; then 182 | echo "Warning: JAVA_HOME environment variable is not set." 183 | fi 184 | 185 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 186 | 187 | # For Cygwin, switch paths to Windows format before running java 188 | if $cygwin; then 189 | [ -n "$M2_HOME" ] && 190 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 191 | [ -n "$JAVA_HOME" ] && 192 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 193 | [ -n "$CLASSPATH" ] && 194 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 195 | fi 196 | 197 | # traverses directory structure from process work directory to filesystem root 198 | # first directory with .mvn subdirectory is considered project base directory 199 | find_maven_basedir() { 200 | local basedir=$(pwd) 201 | local wdir=$(pwd) 202 | while [ "$wdir" != '/' ] ; do 203 | if [ -d "$wdir"/.mvn ] ; then 204 | basedir=$wdir 205 | break 206 | fi 207 | wdir=$(cd "$wdir/.."; pwd) 208 | done 209 | echo "${basedir}" 210 | } 211 | 212 | # concatenates all lines of a file 213 | concat_lines() { 214 | if [ -f "$1" ]; then 215 | echo "$(tr -s '\n' ' ' < "$1")" 216 | fi 217 | } 218 | 219 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} 220 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 221 | 222 | # Provide a "standardized" way to retrieve the CLI args that will 223 | # work with both Windows and non-Windows executions. 224 | MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" 225 | export MAVEN_CMD_LINE_ARGS 226 | 227 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 228 | 229 | exec "$JAVACMD" \ 230 | $MAVEN_OPTS \ 231 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 232 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 233 | ${WRAPPER_LAUNCHER} "$@" 234 | -------------------------------------------------------------------------------- /composite-service/mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven2 Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # 58 | # Look for the Apple JDKs first to preserve the existing behaviour, and then look 59 | # for the new JDKs provided by Oracle. 60 | # 61 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then 62 | # 63 | # Apple JDKs 64 | # 65 | export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home 66 | fi 67 | 68 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then 69 | # 70 | # Apple JDKs 71 | # 72 | export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 73 | fi 74 | 75 | if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then 76 | # 77 | # Oracle JDKs 78 | # 79 | export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 80 | fi 81 | 82 | if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then 83 | # 84 | # Apple JDKs 85 | # 86 | export JAVA_HOME=`/usr/libexec/java_home` 87 | fi 88 | ;; 89 | esac 90 | 91 | if [ -z "$JAVA_HOME" ] ; then 92 | if [ -r /etc/gentoo-release ] ; then 93 | JAVA_HOME=`java-config --jre-home` 94 | fi 95 | fi 96 | 97 | if [ -z "$M2_HOME" ] ; then 98 | ## resolve links - $0 may be a link to maven's home 99 | PRG="$0" 100 | 101 | # need this for relative symlinks 102 | while [ -h "$PRG" ] ; do 103 | ls=`ls -ld "$PRG"` 104 | link=`expr "$ls" : '.*-> \(.*\)$'` 105 | if expr "$link" : '/.*' > /dev/null; then 106 | PRG="$link" 107 | else 108 | PRG="`dirname "$PRG"`/$link" 109 | fi 110 | done 111 | 112 | saveddir=`pwd` 113 | 114 | M2_HOME=`dirname "$PRG"`/.. 115 | 116 | # make it fully qualified 117 | M2_HOME=`cd "$M2_HOME" && pwd` 118 | 119 | cd "$saveddir" 120 | # echo Using m2 at $M2_HOME 121 | fi 122 | 123 | # For Cygwin, ensure paths are in UNIX format before anything is touched 124 | if $cygwin ; then 125 | [ -n "$M2_HOME" ] && 126 | M2_HOME=`cygpath --unix "$M2_HOME"` 127 | [ -n "$JAVA_HOME" ] && 128 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 129 | [ -n "$CLASSPATH" ] && 130 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 131 | fi 132 | 133 | # For Migwn, ensure paths are in UNIX format before anything is touched 134 | if $mingw ; then 135 | [ -n "$M2_HOME" ] && 136 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 137 | [ -n "$JAVA_HOME" ] && 138 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 139 | # TODO classpath? 140 | fi 141 | 142 | if [ -z "$JAVA_HOME" ]; then 143 | javaExecutable="`which javac`" 144 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 145 | # readlink(1) is not available as standard on Solaris 10. 146 | readLink=`which readlink` 147 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 148 | if $darwin ; then 149 | javaHome="`dirname \"$javaExecutable\"`" 150 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 151 | else 152 | javaExecutable="`readlink -f \"$javaExecutable\"`" 153 | fi 154 | javaHome="`dirname \"$javaExecutable\"`" 155 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 156 | JAVA_HOME="$javaHome" 157 | export JAVA_HOME 158 | fi 159 | fi 160 | fi 161 | 162 | if [ -z "$JAVACMD" ] ; then 163 | if [ -n "$JAVA_HOME" ] ; then 164 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 165 | # IBM's JDK on AIX uses strange locations for the executables 166 | JAVACMD="$JAVA_HOME/jre/sh/java" 167 | else 168 | JAVACMD="$JAVA_HOME/bin/java" 169 | fi 170 | else 171 | JAVACMD="`which java`" 172 | fi 173 | fi 174 | 175 | if [ ! -x "$JAVACMD" ] ; then 176 | echo "Error: JAVA_HOME is not defined correctly." >&2 177 | echo " We cannot execute $JAVACMD" >&2 178 | exit 1 179 | fi 180 | 181 | if [ -z "$JAVA_HOME" ] ; then 182 | echo "Warning: JAVA_HOME environment variable is not set." 183 | fi 184 | 185 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 186 | 187 | # For Cygwin, switch paths to Windows format before running java 188 | if $cygwin; then 189 | [ -n "$M2_HOME" ] && 190 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 191 | [ -n "$JAVA_HOME" ] && 192 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 193 | [ -n "$CLASSPATH" ] && 194 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 195 | fi 196 | 197 | # traverses directory structure from process work directory to filesystem root 198 | # first directory with .mvn subdirectory is considered project base directory 199 | find_maven_basedir() { 200 | local basedir=$(pwd) 201 | local wdir=$(pwd) 202 | while [ "$wdir" != '/' ] ; do 203 | if [ -d "$wdir"/.mvn ] ; then 204 | basedir=$wdir 205 | break 206 | fi 207 | wdir=$(cd "$wdir/.."; pwd) 208 | done 209 | echo "${basedir}" 210 | } 211 | 212 | # concatenates all lines of a file 213 | concat_lines() { 214 | if [ -f "$1" ]; then 215 | echo "$(tr -s '\n' ' ' < "$1")" 216 | fi 217 | } 218 | 219 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} 220 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 221 | 222 | # Provide a "standardized" way to retrieve the CLI args that will 223 | # work with both Windows and non-Windows executions. 224 | MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" 225 | export MAVEN_CMD_LINE_ARGS 226 | 227 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 228 | 229 | exec "$JAVACMD" \ 230 | $MAVEN_OPTS \ 231 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 232 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 233 | ${WRAPPER_LAUNCHER} "$@" 234 | -------------------------------------------------------------------------------- /eureka-server-peer1/mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven2 Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # 58 | # Look for the Apple JDKs first to preserve the existing behaviour, and then look 59 | # for the new JDKs provided by Oracle. 60 | # 61 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then 62 | # 63 | # Apple JDKs 64 | # 65 | export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home 66 | fi 67 | 68 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then 69 | # 70 | # Apple JDKs 71 | # 72 | export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 73 | fi 74 | 75 | if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then 76 | # 77 | # Oracle JDKs 78 | # 79 | export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 80 | fi 81 | 82 | if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then 83 | # 84 | # Apple JDKs 85 | # 86 | export JAVA_HOME=`/usr/libexec/java_home` 87 | fi 88 | ;; 89 | esac 90 | 91 | if [ -z "$JAVA_HOME" ] ; then 92 | if [ -r /etc/gentoo-release ] ; then 93 | JAVA_HOME=`java-config --jre-home` 94 | fi 95 | fi 96 | 97 | if [ -z "$M2_HOME" ] ; then 98 | ## resolve links - $0 may be a link to maven's home 99 | PRG="$0" 100 | 101 | # need this for relative symlinks 102 | while [ -h "$PRG" ] ; do 103 | ls=`ls -ld "$PRG"` 104 | link=`expr "$ls" : '.*-> \(.*\)$'` 105 | if expr "$link" : '/.*' > /dev/null; then 106 | PRG="$link" 107 | else 108 | PRG="`dirname "$PRG"`/$link" 109 | fi 110 | done 111 | 112 | saveddir=`pwd` 113 | 114 | M2_HOME=`dirname "$PRG"`/.. 115 | 116 | # make it fully qualified 117 | M2_HOME=`cd "$M2_HOME" && pwd` 118 | 119 | cd "$saveddir" 120 | # echo Using m2 at $M2_HOME 121 | fi 122 | 123 | # For Cygwin, ensure paths are in UNIX format before anything is touched 124 | if $cygwin ; then 125 | [ -n "$M2_HOME" ] && 126 | M2_HOME=`cygpath --unix "$M2_HOME"` 127 | [ -n "$JAVA_HOME" ] && 128 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 129 | [ -n "$CLASSPATH" ] && 130 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 131 | fi 132 | 133 | # For Migwn, ensure paths are in UNIX format before anything is touched 134 | if $mingw ; then 135 | [ -n "$M2_HOME" ] && 136 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 137 | [ -n "$JAVA_HOME" ] && 138 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 139 | # TODO classpath? 140 | fi 141 | 142 | if [ -z "$JAVA_HOME" ]; then 143 | javaExecutable="`which javac`" 144 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 145 | # readlink(1) is not available as standard on Solaris 10. 146 | readLink=`which readlink` 147 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 148 | if $darwin ; then 149 | javaHome="`dirname \"$javaExecutable\"`" 150 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 151 | else 152 | javaExecutable="`readlink -f \"$javaExecutable\"`" 153 | fi 154 | javaHome="`dirname \"$javaExecutable\"`" 155 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 156 | JAVA_HOME="$javaHome" 157 | export JAVA_HOME 158 | fi 159 | fi 160 | fi 161 | 162 | if [ -z "$JAVACMD" ] ; then 163 | if [ -n "$JAVA_HOME" ] ; then 164 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 165 | # IBM's JDK on AIX uses strange locations for the executables 166 | JAVACMD="$JAVA_HOME/jre/sh/java" 167 | else 168 | JAVACMD="$JAVA_HOME/bin/java" 169 | fi 170 | else 171 | JAVACMD="`which java`" 172 | fi 173 | fi 174 | 175 | if [ ! -x "$JAVACMD" ] ; then 176 | echo "Error: JAVA_HOME is not defined correctly." >&2 177 | echo " We cannot execute $JAVACMD" >&2 178 | exit 1 179 | fi 180 | 181 | if [ -z "$JAVA_HOME" ] ; then 182 | echo "Warning: JAVA_HOME environment variable is not set." 183 | fi 184 | 185 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 186 | 187 | # For Cygwin, switch paths to Windows format before running java 188 | if $cygwin; then 189 | [ -n "$M2_HOME" ] && 190 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 191 | [ -n "$JAVA_HOME" ] && 192 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 193 | [ -n "$CLASSPATH" ] && 194 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 195 | fi 196 | 197 | # traverses directory structure from process work directory to filesystem root 198 | # first directory with .mvn subdirectory is considered project base directory 199 | find_maven_basedir() { 200 | local basedir=$(pwd) 201 | local wdir=$(pwd) 202 | while [ "$wdir" != '/' ] ; do 203 | if [ -d "$wdir"/.mvn ] ; then 204 | basedir=$wdir 205 | break 206 | fi 207 | wdir=$(cd "$wdir/.."; pwd) 208 | done 209 | echo "${basedir}" 210 | } 211 | 212 | # concatenates all lines of a file 213 | concat_lines() { 214 | if [ -f "$1" ]; then 215 | echo "$(tr -s '\n' ' ' < "$1")" 216 | fi 217 | } 218 | 219 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} 220 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 221 | 222 | # Provide a "standardized" way to retrieve the CLI args that will 223 | # work with both Windows and non-Windows executions. 224 | MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" 225 | export MAVEN_CMD_LINE_ARGS 226 | 227 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 228 | 229 | exec "$JAVACMD" \ 230 | $MAVEN_OPTS \ 231 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 232 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 233 | ${WRAPPER_LAUNCHER} "$@" 234 | -------------------------------------------------------------------------------- /eureka-server-peer2/mvnw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ---------------------------------------------------------------------------- 3 | # Licensed to the Apache Software Foundation (ASF) under one 4 | # or more contributor license agreements. See the NOTICE file 5 | # distributed with this work for additional information 6 | # regarding copyright ownership. The ASF licenses this file 7 | # to you under the Apache License, Version 2.0 (the 8 | # "License"); you may not use this file except in compliance 9 | # with the License. You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, 14 | # software distributed under the License is distributed on an 15 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | # KIND, either express or implied. See the License for the 17 | # specific language governing permissions and limitations 18 | # under the License. 19 | # ---------------------------------------------------------------------------- 20 | 21 | # ---------------------------------------------------------------------------- 22 | # Maven2 Start Up Batch script 23 | # 24 | # Required ENV vars: 25 | # ------------------ 26 | # JAVA_HOME - location of a JDK home dir 27 | # 28 | # Optional ENV vars 29 | # ----------------- 30 | # M2_HOME - location of maven2's installed home dir 31 | # MAVEN_OPTS - parameters passed to the Java VM when running Maven 32 | # e.g. to debug Maven itself, use 33 | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 34 | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files 35 | # ---------------------------------------------------------------------------- 36 | 37 | if [ -z "$MAVEN_SKIP_RC" ] ; then 38 | 39 | if [ -f /etc/mavenrc ] ; then 40 | . /etc/mavenrc 41 | fi 42 | 43 | if [ -f "$HOME/.mavenrc" ] ; then 44 | . "$HOME/.mavenrc" 45 | fi 46 | 47 | fi 48 | 49 | # OS specific support. $var _must_ be set to either true or false. 50 | cygwin=false; 51 | darwin=false; 52 | mingw=false 53 | case "`uname`" in 54 | CYGWIN*) cygwin=true ;; 55 | MINGW*) mingw=true;; 56 | Darwin*) darwin=true 57 | # 58 | # Look for the Apple JDKs first to preserve the existing behaviour, and then look 59 | # for the new JDKs provided by Oracle. 60 | # 61 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then 62 | # 63 | # Apple JDKs 64 | # 65 | export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home 66 | fi 67 | 68 | if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then 69 | # 70 | # Apple JDKs 71 | # 72 | export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 73 | fi 74 | 75 | if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then 76 | # 77 | # Oracle JDKs 78 | # 79 | export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home 80 | fi 81 | 82 | if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then 83 | # 84 | # Apple JDKs 85 | # 86 | export JAVA_HOME=`/usr/libexec/java_home` 87 | fi 88 | ;; 89 | esac 90 | 91 | if [ -z "$JAVA_HOME" ] ; then 92 | if [ -r /etc/gentoo-release ] ; then 93 | JAVA_HOME=`java-config --jre-home` 94 | fi 95 | fi 96 | 97 | if [ -z "$M2_HOME" ] ; then 98 | ## resolve links - $0 may be a link to maven's home 99 | PRG="$0" 100 | 101 | # need this for relative symlinks 102 | while [ -h "$PRG" ] ; do 103 | ls=`ls -ld "$PRG"` 104 | link=`expr "$ls" : '.*-> \(.*\)$'` 105 | if expr "$link" : '/.*' > /dev/null; then 106 | PRG="$link" 107 | else 108 | PRG="`dirname "$PRG"`/$link" 109 | fi 110 | done 111 | 112 | saveddir=`pwd` 113 | 114 | M2_HOME=`dirname "$PRG"`/.. 115 | 116 | # make it fully qualified 117 | M2_HOME=`cd "$M2_HOME" && pwd` 118 | 119 | cd "$saveddir" 120 | # echo Using m2 at $M2_HOME 121 | fi 122 | 123 | # For Cygwin, ensure paths are in UNIX format before anything is touched 124 | if $cygwin ; then 125 | [ -n "$M2_HOME" ] && 126 | M2_HOME=`cygpath --unix "$M2_HOME"` 127 | [ -n "$JAVA_HOME" ] && 128 | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 129 | [ -n "$CLASSPATH" ] && 130 | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` 131 | fi 132 | 133 | # For Migwn, ensure paths are in UNIX format before anything is touched 134 | if $mingw ; then 135 | [ -n "$M2_HOME" ] && 136 | M2_HOME="`(cd "$M2_HOME"; pwd)`" 137 | [ -n "$JAVA_HOME" ] && 138 | JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 139 | # TODO classpath? 140 | fi 141 | 142 | if [ -z "$JAVA_HOME" ]; then 143 | javaExecutable="`which javac`" 144 | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then 145 | # readlink(1) is not available as standard on Solaris 10. 146 | readLink=`which readlink` 147 | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then 148 | if $darwin ; then 149 | javaHome="`dirname \"$javaExecutable\"`" 150 | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" 151 | else 152 | javaExecutable="`readlink -f \"$javaExecutable\"`" 153 | fi 154 | javaHome="`dirname \"$javaExecutable\"`" 155 | javaHome=`expr "$javaHome" : '\(.*\)/bin'` 156 | JAVA_HOME="$javaHome" 157 | export JAVA_HOME 158 | fi 159 | fi 160 | fi 161 | 162 | if [ -z "$JAVACMD" ] ; then 163 | if [ -n "$JAVA_HOME" ] ; then 164 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 165 | # IBM's JDK on AIX uses strange locations for the executables 166 | JAVACMD="$JAVA_HOME/jre/sh/java" 167 | else 168 | JAVACMD="$JAVA_HOME/bin/java" 169 | fi 170 | else 171 | JAVACMD="`which java`" 172 | fi 173 | fi 174 | 175 | if [ ! -x "$JAVACMD" ] ; then 176 | echo "Error: JAVA_HOME is not defined correctly." >&2 177 | echo " We cannot execute $JAVACMD" >&2 178 | exit 1 179 | fi 180 | 181 | if [ -z "$JAVA_HOME" ] ; then 182 | echo "Warning: JAVA_HOME environment variable is not set." 183 | fi 184 | 185 | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher 186 | 187 | # For Cygwin, switch paths to Windows format before running java 188 | if $cygwin; then 189 | [ -n "$M2_HOME" ] && 190 | M2_HOME=`cygpath --path --windows "$M2_HOME"` 191 | [ -n "$JAVA_HOME" ] && 192 | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` 193 | [ -n "$CLASSPATH" ] && 194 | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` 195 | fi 196 | 197 | # traverses directory structure from process work directory to filesystem root 198 | # first directory with .mvn subdirectory is considered project base directory 199 | find_maven_basedir() { 200 | local basedir=$(pwd) 201 | local wdir=$(pwd) 202 | while [ "$wdir" != '/' ] ; do 203 | if [ -d "$wdir"/.mvn ] ; then 204 | basedir=$wdir 205 | break 206 | fi 207 | wdir=$(cd "$wdir/.."; pwd) 208 | done 209 | echo "${basedir}" 210 | } 211 | 212 | # concatenates all lines of a file 213 | concat_lines() { 214 | if [ -f "$1" ]; then 215 | echo "$(tr -s '\n' ' ' < "$1")" 216 | fi 217 | } 218 | 219 | export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} 220 | MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" 221 | 222 | # Provide a "standardized" way to retrieve the CLI args that will 223 | # work with both Windows and non-Windows executions. 224 | MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" 225 | export MAVEN_CMD_LINE_ARGS 226 | 227 | WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 228 | 229 | exec "$JAVACMD" \ 230 | $MAVEN_OPTS \ 231 | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ 232 | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ 233 | ${WRAPPER_LAUNCHER} "$@" 234 | -------------------------------------------------------------------------------- /nodejs-web/public/css/alertify.css: -------------------------------------------------------------------------------- 1 | /** 2 | * alertifyjs 1.7.1 http://alertifyjs.com 3 | * AlertifyJS is a javascript framework for developing pretty browser dialogs and notifications. 4 | * Copyright 2016 Mohammad Younes (http://alertifyjs.com) 5 | * Licensed under MIT */ 6 | .alertify .ajs-dimmer { 7 | position: fixed; 8 | z-index: 1981; 9 | top: 0; 10 | right: 0; 11 | bottom: 0; 12 | left: 0; 13 | padding: 0; 14 | margin: 0; 15 | background-color: #252525; 16 | opacity: .5; 17 | } 18 | .alertify .ajs-modal { 19 | position: fixed; 20 | top: 0; 21 | right: 0; 22 | left: 0; 23 | bottom: 0; 24 | padding: 0; 25 | overflow-y: auto; 26 | z-index: 1981; 27 | } 28 | .alertify .ajs-dialog { 29 | position: relative; 30 | margin: 5% auto; 31 | min-height: 110px; 32 | max-width: 500px; 33 | padding: 24px 24px 0 24px; 34 | outline: 0; 35 | background-color: #fff; 36 | } 37 | .alertify .ajs-dialog.ajs-capture:before { 38 | content: ''; 39 | position: absolute; 40 | top: 0; 41 | right: 0; 42 | bottom: 0; 43 | left: 0; 44 | display: block; 45 | z-index: 1; 46 | } 47 | .alertify .ajs-reset { 48 | position: absolute !important; 49 | display: inline !important; 50 | width: 0 !important; 51 | height: 0 !important; 52 | opacity: 0 !important; 53 | } 54 | .alertify .ajs-commands { 55 | position: absolute; 56 | right: 4px; 57 | margin: -14px 24px 0 0; 58 | z-index: 2; 59 | } 60 | .alertify .ajs-commands button { 61 | display: none; 62 | width: 10px; 63 | height: 10px; 64 | margin-left: 10px; 65 | padding: 10px; 66 | border: 0; 67 | background-color: transparent; 68 | background-repeat: no-repeat; 69 | background-position: center; 70 | cursor: pointer; 71 | } 72 | .alertify .ajs-commands button.ajs-close { 73 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAh0lEQVQYlY2QsQ0EIQwEB9cBAR1CJUaI/gigDnwR6NBL/7/xWLNrZ2b8EwGotVpr7eOitWa1VjugiNB7R1UPrKrWe0dEAHBbXUqxMQbeewDmnHjvyTm7C3zDwAUd9c63YQdUVdu6EAJzzquz7HXvTiklt+H9DQFYaxFjvDqllFyMkbXWvfpXHjJrWFgdBq/hAAAAAElFTkSuQmCC); 74 | } 75 | .alertify .ajs-commands button.ajs-maximize { 76 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAOUlEQVQYlWP8//8/AzGAhYGBgaG4uBiv6t7eXkYmooxjYGAgWiELsvHYFMCcRX2rSXcjoSBiJDbAAeD+EGu+8BZcAAAAAElFTkSuQmCC); 77 | } 78 | .alertify .ajs-header { 79 | margin: -24px; 80 | margin-bottom: 0; 81 | padding: 16px 24px; 82 | background-color: #fff; 83 | } 84 | .alertify .ajs-body { 85 | min-height: 56px; 86 | } 87 | .alertify .ajs-body .ajs-content { 88 | padding: 16px 24px 16px 16px; 89 | } 90 | .alertify .ajs-footer { 91 | padding: 4px; 92 | margin-left: -24px; 93 | margin-right: -24px; 94 | min-height: 43px; 95 | background-color: #fff; 96 | } 97 | .alertify .ajs-footer .ajs-buttons.ajs-primary { 98 | text-align: right; 99 | } 100 | .alertify .ajs-footer .ajs-buttons.ajs-primary .ajs-button { 101 | margin: 4px; 102 | } 103 | .alertify .ajs-footer .ajs-buttons.ajs-auxiliary { 104 | float: left; 105 | clear: none; 106 | text-align: left; 107 | } 108 | .alertify .ajs-footer .ajs-buttons.ajs-auxiliary .ajs-button { 109 | margin: 4px; 110 | } 111 | .alertify .ajs-footer .ajs-buttons .ajs-button { 112 | min-width: 88px; 113 | min-height: 35px; 114 | } 115 | .alertify .ajs-handle { 116 | position: absolute; 117 | display: none; 118 | width: 10px; 119 | height: 10px; 120 | right: 0; 121 | bottom: 0; 122 | z-index: 1; 123 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMS8xNEDQYmMAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQ0lEQVQYlaXNMQoAIAxD0dT7H657l0KX3iJuUlBUNOsPPCGJm7VDp6ryeMxMuDsAQH7owW3pyn3RS26iKxERMLN3ugOaAkaL3sWVigAAAABJRU5ErkJggg==); 124 | -webkit-transform: scaleX(1) /*rtl:scaleX(-1)*/; 125 | transform: scaleX(1) /*rtl:scaleX(-1)*/; 126 | cursor: se-resize; 127 | } 128 | .alertify.ajs-no-overflow .ajs-body .ajs-content { 129 | overflow: hidden !important; 130 | } 131 | .alertify.ajs-no-padding.ajs-maximized .ajs-body .ajs-content { 132 | left: 0; 133 | right: 0; 134 | padding: 0; 135 | } 136 | .alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body { 137 | margin-left: -24px; 138 | margin-right: -24px; 139 | } 140 | .alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body .ajs-content { 141 | padding: 0; 142 | } 143 | .alertify.ajs-no-padding.ajs-resizable .ajs-body .ajs-content { 144 | left: 0; 145 | right: 0; 146 | } 147 | .alertify.ajs-maximizable .ajs-commands button.ajs-maximize, 148 | .alertify.ajs-maximizable .ajs-commands button.ajs-restore { 149 | display: inline-block; 150 | } 151 | .alertify.ajs-closable .ajs-commands button.ajs-close { 152 | display: inline-block; 153 | } 154 | .alertify.ajs-maximized .ajs-dialog { 155 | width: 100% !important; 156 | height: 100% !important; 157 | max-width: none !important; 158 | margin: 0 auto !important; 159 | top: 0 !important; 160 | left: 0 !important; 161 | } 162 | .alertify.ajs-maximized.ajs-modeless .ajs-modal { 163 | position: fixed !important; 164 | min-height: 100% !important; 165 | max-height: none !important; 166 | margin: 0 !important; 167 | } 168 | .alertify.ajs-maximized .ajs-commands button.ajs-maximize { 169 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAASklEQVQYlZWQ0QkAMQhDtXRincOZX78KVtrDCwgqJNEoIB3MPLj7lRUROlpyVXGzby6zWuY+kz6tj5sBMTMAyVV3/595RbOh3cAXsww1raeiOcoAAAAASUVORK5CYII=); 170 | } 171 | .alertify.ajs-resizable .ajs-dialog, 172 | .alertify.ajs-maximized .ajs-dialog { 173 | padding: 0; 174 | } 175 | .alertify.ajs-resizable .ajs-commands, 176 | .alertify.ajs-maximized .ajs-commands { 177 | margin: 14px 24px 0 0; 178 | } 179 | .alertify.ajs-resizable .ajs-header, 180 | .alertify.ajs-maximized .ajs-header { 181 | position: absolute; 182 | top: 0; 183 | left: 0; 184 | right: 0; 185 | margin: 0; 186 | padding: 16px 24px; 187 | } 188 | .alertify.ajs-resizable .ajs-body, 189 | .alertify.ajs-maximized .ajs-body { 190 | min-height: 224px; 191 | display: inline-block; 192 | } 193 | .alertify.ajs-resizable .ajs-body .ajs-content, 194 | .alertify.ajs-maximized .ajs-body .ajs-content { 195 | position: absolute; 196 | top: 50px; 197 | right: 24px; 198 | bottom: 50px; 199 | left: 24px; 200 | overflow: auto; 201 | } 202 | .alertify.ajs-resizable .ajs-footer, 203 | .alertify.ajs-maximized .ajs-footer { 204 | position: absolute; 205 | left: 0; 206 | right: 0; 207 | bottom: 0; 208 | margin: 0; 209 | } 210 | .alertify.ajs-resizable:not(.ajs-maximized) .ajs-dialog { 211 | min-width: 548px; 212 | } 213 | .alertify.ajs-resizable:not(.ajs-maximized) .ajs-handle { 214 | display: block; 215 | } 216 | .alertify.ajs-movable:not(.ajs-maximized) .ajs-header { 217 | cursor: move; 218 | } 219 | .alertify.ajs-modeless .ajs-dimmer, 220 | .alertify.ajs-modeless .ajs-reset { 221 | display: none; 222 | } 223 | .alertify.ajs-modeless .ajs-modal { 224 | overflow: visible; 225 | max-width: none; 226 | max-height: 0; 227 | } 228 | .alertify.ajs-modeless.ajs-pinnable .ajs-commands button.ajs-pin { 229 | display: inline-block; 230 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQklEQVQYlcWPMQ4AIAwCqU9u38GbcbHRWN1MvKQDhQFMEpKImGJA0gCgnYw0V0rwxseg5erT4oSkQVI5d9f+e9+xA0NbLpWfitPXAAAAAElFTkSuQmCC); 231 | } 232 | .alertify.ajs-modeless.ajs-unpinned .ajs-modal { 233 | position: absolute; 234 | } 235 | .alertify.ajs-modeless.ajs-unpinned .ajs-commands button.ajs-pin { 236 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAO0lEQVQYlWP8//8/AzGAiShV6AqLi4txGs+CLoBLMYbC3t5eRmyaWfBZhwwYkX2NTxPRvibKjRhW4wMAhxkYGbLu3pEAAAAASUVORK5CYII=); 237 | } 238 | .alertify.ajs-modeless:not(.ajs-unpinned) .ajs-body { 239 | max-height: 500px; 240 | overflow: auto; 241 | } 242 | .alertify.ajs-basic .ajs-header { 243 | opacity: 0; 244 | } 245 | .alertify.ajs-basic .ajs-footer { 246 | visibility: hidden; 247 | } 248 | .alertify.ajs-frameless .ajs-header { 249 | position: absolute; 250 | top: 0; 251 | left: 0; 252 | right: 0; 253 | min-height: 60px; 254 | margin: 0; 255 | padding: 0; 256 | opacity: 0; 257 | z-index: 1; 258 | } 259 | .alertify.ajs-frameless .ajs-footer { 260 | display: none; 261 | } 262 | .alertify.ajs-frameless .ajs-body .ajs-content { 263 | position: absolute; 264 | top: 0; 265 | right: 0; 266 | bottom: 0; 267 | left: 0; 268 | } 269 | .alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog { 270 | padding-top: 0; 271 | } 272 | .alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog .ajs-commands { 273 | margin-top: 0; 274 | } 275 | .ajs-no-overflow { 276 | overflow: hidden !important; 277 | outline: none; 278 | } 279 | .ajs-no-selection, 280 | .ajs-no-selection * { 281 | -webkit-user-select: none; 282 | -moz-user-select: none; 283 | -ms-user-select: none; 284 | user-select: none; 285 | } 286 | @media screen and (max-width: 568px) { 287 | .alertify .ajs-dialog { 288 | min-width: 150px; 289 | } 290 | .alertify:not(.ajs-maximized) .ajs-modal { 291 | padding: 0 5%; 292 | } 293 | .alertify:not(.ajs-maximized).ajs-resizable .ajs-dialog { 294 | min-width: initial; 295 | min-width: auto /*IE fallback*/; 296 | } 297 | } 298 | @-moz-document url-prefix() { 299 | .alertify button:focus { 300 | outline: 1px dotted #3593D2; 301 | } 302 | } 303 | .alertify .ajs-dimmer, 304 | .alertify .ajs-modal { 305 | -webkit-transform: translate3d(0, 0, 0); 306 | transform: translate3d(0, 0, 0); 307 | transition-property: opacity, visibility; 308 | transition-timing-function: linear; 309 | transition-duration: 250ms; 310 | } 311 | .alertify.ajs-hidden .ajs-dimmer, 312 | .alertify.ajs-hidden .ajs-modal { 313 | visibility: hidden; 314 | opacity: 0; 315 | } 316 | .alertify.ajs-in:not(.ajs-hidden) .ajs-dialog { 317 | -webkit-animation-duration: 500ms; 318 | animation-duration: 500ms; 319 | } 320 | .alertify.ajs-out.ajs-hidden .ajs-dialog { 321 | -webkit-animation-duration: 250ms; 322 | animation-duration: 250ms; 323 | } 324 | .alertify .ajs-dialog.ajs-shake { 325 | -webkit-animation-name: ajs-shake; 326 | animation-name: ajs-shake; 327 | -webkit-animation-duration: .1s; 328 | animation-duration: .1s; 329 | -webkit-animation-fill-mode: both; 330 | animation-fill-mode: both; 331 | } 332 | @-webkit-keyframes ajs-shake { 333 | 0%, 334 | 100% { 335 | -webkit-transform: translate3d(0, 0, 0); 336 | transform: translate3d(0, 0, 0); 337 | } 338 | 10%, 339 | 30%, 340 | 50%, 341 | 70%, 342 | 90% { 343 | -webkit-transform: translate3d(-10px, 0, 0); 344 | transform: translate3d(-10px, 0, 0); 345 | } 346 | 20%, 347 | 40%, 348 | 60%, 349 | 80% { 350 | -webkit-transform: translate3d(10px, 0, 0); 351 | transform: translate3d(10px, 0, 0); 352 | } 353 | } 354 | @keyframes ajs-shake { 355 | 0%, 356 | 100% { 357 | -webkit-transform: translate3d(0, 0, 0); 358 | transform: translate3d(0, 0, 0); 359 | } 360 | 10%, 361 | 30%, 362 | 50%, 363 | 70%, 364 | 90% { 365 | -webkit-transform: translate3d(-10px, 0, 0); 366 | transform: translate3d(-10px, 0, 0); 367 | } 368 | 20%, 369 | 40%, 370 | 60%, 371 | 80% { 372 | -webkit-transform: translate3d(10px, 0, 0); 373 | transform: translate3d(10px, 0, 0); 374 | } 375 | } 376 | .alertify.ajs-slide.ajs-in:not(.ajs-hidden) .ajs-dialog { 377 | -webkit-animation-name: ajs-slideIn; 378 | animation-name: ajs-slideIn; 379 | -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); 380 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); 381 | } 382 | .alertify.ajs-slide.ajs-out.ajs-hidden .ajs-dialog { 383 | -webkit-animation-name: ajs-slideOut; 384 | animation-name: ajs-slideOut; 385 | -webkit-animation-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045); 386 | animation-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045); 387 | } 388 | .alertify.ajs-zoom.ajs-in:not(.ajs-hidden) .ajs-dialog { 389 | -webkit-animation-name: ajs-zoomIn; 390 | animation-name: ajs-zoomIn; 391 | } 392 | .alertify.ajs-zoom.ajs-out.ajs-hidden .ajs-dialog { 393 | -webkit-animation-name: ajs-zoomOut; 394 | animation-name: ajs-zoomOut; 395 | } 396 | .alertify.ajs-fade.ajs-in:not(.ajs-hidden) .ajs-dialog { 397 | -webkit-animation-name: ajs-fadeIn; 398 | animation-name: ajs-fadeIn; 399 | } 400 | .alertify.ajs-fade.ajs-out.ajs-hidden .ajs-dialog { 401 | -webkit-animation-name: ajs-fadeOut; 402 | animation-name: ajs-fadeOut; 403 | } 404 | .alertify.ajs-pulse.ajs-in:not(.ajs-hidden) .ajs-dialog { 405 | -webkit-animation-name: ajs-pulseIn; 406 | animation-name: ajs-pulseIn; 407 | } 408 | .alertify.ajs-pulse.ajs-out.ajs-hidden .ajs-dialog { 409 | -webkit-animation-name: ajs-pulseOut; 410 | animation-name: ajs-pulseOut; 411 | } 412 | .alertify.ajs-flipx.ajs-in:not(.ajs-hidden) .ajs-dialog { 413 | -webkit-animation-name: ajs-flipInX; 414 | animation-name: ajs-flipInX; 415 | } 416 | .alertify.ajs-flipx.ajs-out.ajs-hidden .ajs-dialog { 417 | -webkit-animation-name: ajs-flipOutX; 418 | animation-name: ajs-flipOutX; 419 | } 420 | .alertify.ajs-flipy.ajs-in:not(.ajs-hidden) .ajs-dialog { 421 | -webkit-animation-name: ajs-flipInY; 422 | animation-name: ajs-flipInY; 423 | } 424 | .alertify.ajs-flipy.ajs-out.ajs-hidden .ajs-dialog { 425 | -webkit-animation-name: ajs-flipOutY; 426 | animation-name: ajs-flipOutY; 427 | } 428 | @-webkit-keyframes ajs-pulseIn { 429 | 0%, 430 | 20%, 431 | 40%, 432 | 60%, 433 | 80%, 434 | 100% { 435 | transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); 436 | } 437 | 0% { 438 | opacity: 0; 439 | -webkit-transform: scale3d(0.3, 0.3, 0.3); 440 | transform: scale3d(0.3, 0.3, 0.3); 441 | } 442 | 20% { 443 | -webkit-transform: scale3d(1.1, 1.1, 1.1); 444 | transform: scale3d(1.1, 1.1, 1.1); 445 | } 446 | 40% { 447 | -webkit-transform: scale3d(0.9, 0.9, 0.9); 448 | transform: scale3d(0.9, 0.9, 0.9); 449 | } 450 | 60% { 451 | opacity: 1; 452 | -webkit-transform: scale3d(1.03, 1.03, 1.03); 453 | transform: scale3d(1.03, 1.03, 1.03); 454 | } 455 | 80% { 456 | -webkit-transform: scale3d(0.97, 0.97, 0.97); 457 | transform: scale3d(0.97, 0.97, 0.97); 458 | } 459 | 100% { 460 | opacity: 1; 461 | -webkit-transform: scale3d(1, 1, 1); 462 | transform: scale3d(1, 1, 1); 463 | } 464 | } 465 | @keyframes ajs-pulseIn { 466 | 0%, 467 | 20%, 468 | 40%, 469 | 60%, 470 | 80%, 471 | 100% { 472 | transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); 473 | } 474 | 0% { 475 | opacity: 0; 476 | -webkit-transform: scale3d(0.3, 0.3, 0.3); 477 | transform: scale3d(0.3, 0.3, 0.3); 478 | } 479 | 20% { 480 | -webkit-transform: scale3d(1.1, 1.1, 1.1); 481 | transform: scale3d(1.1, 1.1, 1.1); 482 | } 483 | 40% { 484 | -webkit-transform: scale3d(0.9, 0.9, 0.9); 485 | transform: scale3d(0.9, 0.9, 0.9); 486 | } 487 | 60% { 488 | opacity: 1; 489 | -webkit-transform: scale3d(1.03, 1.03, 1.03); 490 | transform: scale3d(1.03, 1.03, 1.03); 491 | } 492 | 80% { 493 | -webkit-transform: scale3d(0.97, 0.97, 0.97); 494 | transform: scale3d(0.97, 0.97, 0.97); 495 | } 496 | 100% { 497 | opacity: 1; 498 | -webkit-transform: scale3d(1, 1, 1); 499 | transform: scale3d(1, 1, 1); 500 | } 501 | } 502 | @-webkit-keyframes ajs-pulseOut { 503 | 20% { 504 | -webkit-transform: scale3d(0.9, 0.9, 0.9); 505 | transform: scale3d(0.9, 0.9, 0.9); 506 | } 507 | 50%, 508 | 55% { 509 | opacity: 1; 510 | -webkit-transform: scale3d(1.1, 1.1, 1.1); 511 | transform: scale3d(1.1, 1.1, 1.1); 512 | } 513 | 100% { 514 | opacity: 0; 515 | -webkit-transform: scale3d(0.3, 0.3, 0.3); 516 | transform: scale3d(0.3, 0.3, 0.3); 517 | } 518 | } 519 | @keyframes ajs-pulseOut { 520 | 20% { 521 | -webkit-transform: scale3d(0.9, 0.9, 0.9); 522 | transform: scale3d(0.9, 0.9, 0.9); 523 | } 524 | 50%, 525 | 55% { 526 | opacity: 1; 527 | -webkit-transform: scale3d(1.1, 1.1, 1.1); 528 | transform: scale3d(1.1, 1.1, 1.1); 529 | } 530 | 100% { 531 | opacity: 0; 532 | -webkit-transform: scale3d(0.3, 0.3, 0.3); 533 | transform: scale3d(0.3, 0.3, 0.3); 534 | } 535 | } 536 | @-webkit-keyframes ajs-zoomIn { 537 | 0% { 538 | opacity: 0; 539 | -webkit-transform: scale3d(0.25, 0.25, 0.25); 540 | transform: scale3d(0.25, 0.25, 0.25); 541 | } 542 | 100% { 543 | opacity: 1; 544 | -webkit-transform: scale3d(1, 1, 1); 545 | transform: scale3d(1, 1, 1); 546 | } 547 | } 548 | @keyframes ajs-zoomIn { 549 | 0% { 550 | opacity: 0; 551 | -webkit-transform: scale3d(0.25, 0.25, 0.25); 552 | transform: scale3d(0.25, 0.25, 0.25); 553 | } 554 | 100% { 555 | opacity: 1; 556 | -webkit-transform: scale3d(1, 1, 1); 557 | transform: scale3d(1, 1, 1); 558 | } 559 | } 560 | @-webkit-keyframes ajs-zoomOut { 561 | 0% { 562 | opacity: 1; 563 | -webkit-transform: scale3d(1, 1, 1); 564 | transform: scale3d(1, 1, 1); 565 | } 566 | 100% { 567 | opacity: 0; 568 | -webkit-transform: scale3d(0.25, 0.25, 0.25); 569 | transform: scale3d(0.25, 0.25, 0.25); 570 | } 571 | } 572 | @keyframes ajs-zoomOut { 573 | 0% { 574 | opacity: 1; 575 | -webkit-transform: scale3d(1, 1, 1); 576 | transform: scale3d(1, 1, 1); 577 | } 578 | 100% { 579 | opacity: 0; 580 | -webkit-transform: scale3d(0.25, 0.25, 0.25); 581 | transform: scale3d(0.25, 0.25, 0.25); 582 | } 583 | } 584 | @-webkit-keyframes ajs-fadeIn { 585 | 0% { 586 | opacity: 0; 587 | } 588 | 100% { 589 | opacity: 1; 590 | } 591 | } 592 | @keyframes ajs-fadeIn { 593 | 0% { 594 | opacity: 0; 595 | } 596 | 100% { 597 | opacity: 1; 598 | } 599 | } 600 | @-webkit-keyframes ajs-fadeOut { 601 | 0% { 602 | opacity: 1; 603 | } 604 | 100% { 605 | opacity: 0; 606 | } 607 | } 608 | @keyframes ajs-fadeOut { 609 | 0% { 610 | opacity: 1; 611 | } 612 | 100% { 613 | opacity: 0; 614 | } 615 | } 616 | @-webkit-keyframes ajs-flipInX { 617 | 0% { 618 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 619 | transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 620 | transition-timing-function: ease-in; 621 | opacity: 0; 622 | } 623 | 40% { 624 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 625 | transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 626 | transition-timing-function: ease-in; 627 | } 628 | 60% { 629 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); 630 | transform: perspective(400px) rotate3d(1, 0, 0, 10deg); 631 | opacity: 1; 632 | } 633 | 80% { 634 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); 635 | transform: perspective(400px) rotate3d(1, 0, 0, -5deg); 636 | } 637 | 100% { 638 | -webkit-transform: perspective(400px); 639 | transform: perspective(400px); 640 | } 641 | } 642 | @keyframes ajs-flipInX { 643 | 0% { 644 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 645 | transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 646 | transition-timing-function: ease-in; 647 | opacity: 0; 648 | } 649 | 40% { 650 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 651 | transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 652 | transition-timing-function: ease-in; 653 | } 654 | 60% { 655 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); 656 | transform: perspective(400px) rotate3d(1, 0, 0, 10deg); 657 | opacity: 1; 658 | } 659 | 80% { 660 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); 661 | transform: perspective(400px) rotate3d(1, 0, 0, -5deg); 662 | } 663 | 100% { 664 | -webkit-transform: perspective(400px); 665 | transform: perspective(400px); 666 | } 667 | } 668 | @-webkit-keyframes ajs-flipOutX { 669 | 0% { 670 | -webkit-transform: perspective(400px); 671 | transform: perspective(400px); 672 | } 673 | 30% { 674 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 675 | transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 676 | opacity: 1; 677 | } 678 | 100% { 679 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 680 | transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 681 | opacity: 0; 682 | } 683 | } 684 | @keyframes ajs-flipOutX { 685 | 0% { 686 | -webkit-transform: perspective(400px); 687 | transform: perspective(400px); 688 | } 689 | 30% { 690 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 691 | transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 692 | opacity: 1; 693 | } 694 | 100% { 695 | -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 696 | transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 697 | opacity: 0; 698 | } 699 | } 700 | @-webkit-keyframes ajs-flipInY { 701 | 0% { 702 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 703 | transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 704 | transition-timing-function: ease-in; 705 | opacity: 0; 706 | } 707 | 40% { 708 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); 709 | transform: perspective(400px) rotate3d(0, 1, 0, -20deg); 710 | transition-timing-function: ease-in; 711 | } 712 | 60% { 713 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); 714 | transform: perspective(400px) rotate3d(0, 1, 0, 10deg); 715 | opacity: 1; 716 | } 717 | 80% { 718 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); 719 | transform: perspective(400px) rotate3d(0, 1, 0, -5deg); 720 | } 721 | 100% { 722 | -webkit-transform: perspective(400px); 723 | transform: perspective(400px); 724 | } 725 | } 726 | @keyframes ajs-flipInY { 727 | 0% { 728 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 729 | transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 730 | transition-timing-function: ease-in; 731 | opacity: 0; 732 | } 733 | 40% { 734 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); 735 | transform: perspective(400px) rotate3d(0, 1, 0, -20deg); 736 | transition-timing-function: ease-in; 737 | } 738 | 60% { 739 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); 740 | transform: perspective(400px) rotate3d(0, 1, 0, 10deg); 741 | opacity: 1; 742 | } 743 | 80% { 744 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); 745 | transform: perspective(400px) rotate3d(0, 1, 0, -5deg); 746 | } 747 | 100% { 748 | -webkit-transform: perspective(400px); 749 | transform: perspective(400px); 750 | } 751 | } 752 | @-webkit-keyframes ajs-flipOutY { 753 | 0% { 754 | -webkit-transform: perspective(400px); 755 | transform: perspective(400px); 756 | } 757 | 30% { 758 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); 759 | transform: perspective(400px) rotate3d(0, 1, 0, -15deg); 760 | opacity: 1; 761 | } 762 | 100% { 763 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 764 | transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 765 | opacity: 0; 766 | } 767 | } 768 | @keyframes ajs-flipOutY { 769 | 0% { 770 | -webkit-transform: perspective(400px); 771 | transform: perspective(400px); 772 | } 773 | 30% { 774 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); 775 | transform: perspective(400px) rotate3d(0, 1, 0, -15deg); 776 | opacity: 1; 777 | } 778 | 100% { 779 | -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 780 | transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 781 | opacity: 0; 782 | } 783 | } 784 | @-webkit-keyframes ajs-slideIn { 785 | 0% { 786 | margin-top: -100%; 787 | } 788 | 100% { 789 | margin-top: 5%; 790 | } 791 | } 792 | @keyframes ajs-slideIn { 793 | 0% { 794 | margin-top: -100%; 795 | } 796 | 100% { 797 | margin-top: 5%; 798 | } 799 | } 800 | @-webkit-keyframes ajs-slideOut { 801 | 0% { 802 | margin-top: 5%; 803 | } 804 | 100% { 805 | margin-top: -100%; 806 | } 807 | } 808 | @keyframes ajs-slideOut { 809 | 0% { 810 | margin-top: 5%; 811 | } 812 | 100% { 813 | margin-top: -100%; 814 | } 815 | } 816 | .alertify-notifier { 817 | position: fixed; 818 | width: 0; 819 | overflow: visible; 820 | z-index: 1982; 821 | -webkit-transform: translate3d(0, 0, 0); 822 | transform: translate3d(0, 0, 0); 823 | } 824 | .alertify-notifier .ajs-message { 825 | position: relative; 826 | width: 260px; 827 | max-height: 0; 828 | padding: 0; 829 | opacity: 0; 830 | margin: 0; 831 | -webkit-transform: translate3d(0, 0, 0); 832 | transform: translate3d(0, 0, 0); 833 | transition-duration: 250ms; 834 | transition-timing-function: linear; 835 | } 836 | .alertify-notifier .ajs-message.ajs-visible { 837 | transition-duration: 500ms; 838 | transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); 839 | opacity: 1; 840 | max-height: 100%; 841 | padding: 15px; 842 | margin-top: 10px; 843 | } 844 | .alertify-notifier .ajs-message.ajs-success { 845 | background: rgba(91, 189, 114, 0.95); 846 | } 847 | .alertify-notifier .ajs-message.ajs-error { 848 | background: rgba(217, 92, 92, 0.95); 849 | } 850 | .alertify-notifier .ajs-message.ajs-warning { 851 | background: rgba(252, 248, 215, 0.95); 852 | } 853 | .alertify-notifier.ajs-top { 854 | top: 10px; 855 | } 856 | .alertify-notifier.ajs-bottom { 857 | bottom: 10px; 858 | } 859 | .alertify-notifier.ajs-right { 860 | right: 10px; 861 | } 862 | .alertify-notifier.ajs-right .ajs-message { 863 | right: -320px; 864 | } 865 | .alertify-notifier.ajs-right .ajs-message.ajs-visible { 866 | right: 290px; 867 | } 868 | .alertify-notifier.ajs-left { 869 | left: 10px; 870 | } 871 | .alertify-notifier.ajs-left .ajs-message { 872 | left: -300px; 873 | } 874 | .alertify-notifier.ajs-left .ajs-message.ajs-visible { 875 | left: 0; 876 | } 877 | -------------------------------------------------------------------------------- /nodejs-bookservice/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodejs-bookservice", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.4", 9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", 10 | "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", 11 | "requires": { 12 | "mime-types": "2.1.17", 13 | "negotiator": "0.6.1" 14 | } 15 | }, 16 | "ajv": { 17 | "version": "5.5.1", 18 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.1.tgz", 19 | "integrity": "sha1-s4u4h22ehr7plJVqBOch6IskjrI=", 20 | "requires": { 21 | "co": "4.6.0", 22 | "fast-deep-equal": "1.0.0", 23 | "fast-json-stable-stringify": "2.0.0", 24 | "json-schema-traverse": "0.3.1" 25 | } 26 | }, 27 | "argparse": { 28 | "version": "1.0.9", 29 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 30 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 31 | "requires": { 32 | "sprintf-js": "1.0.3" 33 | } 34 | }, 35 | "array-flatten": { 36 | "version": "1.1.1", 37 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 38 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 39 | }, 40 | "asn1": { 41 | "version": "0.2.3", 42 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 43 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" 44 | }, 45 | "assert-plus": { 46 | "version": "1.0.0", 47 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 48 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 49 | }, 50 | "async": { 51 | "version": "2.6.0", 52 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", 53 | "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", 54 | "requires": { 55 | "lodash": "4.17.4" 56 | } 57 | }, 58 | "asynckit": { 59 | "version": "0.4.0", 60 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 61 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 62 | }, 63 | "aws-sign2": { 64 | "version": "0.7.0", 65 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 66 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 67 | }, 68 | "aws4": { 69 | "version": "1.6.0", 70 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", 71 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" 72 | }, 73 | "bcrypt-pbkdf": { 74 | "version": "1.0.1", 75 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 76 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 77 | "optional": true, 78 | "requires": { 79 | "tweetnacl": "0.14.5" 80 | } 81 | }, 82 | "body-parser": { 83 | "version": "1.18.2", 84 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", 85 | "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", 86 | "requires": { 87 | "bytes": "3.0.0", 88 | "content-type": "1.0.4", 89 | "debug": "2.6.9", 90 | "depd": "1.1.1", 91 | "http-errors": "1.6.2", 92 | "iconv-lite": "0.4.19", 93 | "on-finished": "2.3.0", 94 | "qs": "6.5.1", 95 | "raw-body": "2.3.2", 96 | "type-is": "1.6.15" 97 | } 98 | }, 99 | "boom": { 100 | "version": "4.3.1", 101 | "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", 102 | "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", 103 | "requires": { 104 | "hoek": "4.2.0" 105 | } 106 | }, 107 | "bytes": { 108 | "version": "3.0.0", 109 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 110 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" 111 | }, 112 | "caseless": { 113 | "version": "0.12.0", 114 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 115 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 116 | }, 117 | "co": { 118 | "version": "4.6.0", 119 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 120 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" 121 | }, 122 | "combined-stream": { 123 | "version": "1.0.5", 124 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 125 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 126 | "requires": { 127 | "delayed-stream": "1.0.0" 128 | } 129 | }, 130 | "content-disposition": { 131 | "version": "0.5.2", 132 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 133 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" 134 | }, 135 | "content-type": { 136 | "version": "1.0.4", 137 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 138 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 139 | }, 140 | "cookie": { 141 | "version": "0.3.1", 142 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 143 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 144 | }, 145 | "cookie-signature": { 146 | "version": "1.0.6", 147 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 148 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 149 | }, 150 | "core-util-is": { 151 | "version": "1.0.2", 152 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 153 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 154 | }, 155 | "cryptiles": { 156 | "version": "3.1.2", 157 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", 158 | "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", 159 | "requires": { 160 | "boom": "5.2.0" 161 | }, 162 | "dependencies": { 163 | "boom": { 164 | "version": "5.2.0", 165 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 166 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 167 | "requires": { 168 | "hoek": "4.2.0" 169 | } 170 | } 171 | } 172 | }, 173 | "dashdash": { 174 | "version": "1.14.1", 175 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 176 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 177 | "requires": { 178 | "assert-plus": "1.0.0" 179 | } 180 | }, 181 | "debug": { 182 | "version": "2.6.9", 183 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 184 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 185 | "requires": { 186 | "ms": "2.0.0" 187 | } 188 | }, 189 | "delayed-stream": { 190 | "version": "1.0.0", 191 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 192 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 193 | }, 194 | "depd": { 195 | "version": "1.1.1", 196 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", 197 | "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" 198 | }, 199 | "destroy": { 200 | "version": "1.0.4", 201 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 202 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 203 | }, 204 | "ecc-jsbn": { 205 | "version": "0.1.1", 206 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 207 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 208 | "optional": true, 209 | "requires": { 210 | "jsbn": "0.1.1" 211 | } 212 | }, 213 | "ee-first": { 214 | "version": "1.1.1", 215 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 216 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 217 | }, 218 | "encodeurl": { 219 | "version": "1.0.1", 220 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", 221 | "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" 222 | }, 223 | "escape-html": { 224 | "version": "1.0.3", 225 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 226 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 227 | }, 228 | "esprima": { 229 | "version": "4.0.0", 230 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 231 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" 232 | }, 233 | "etag": { 234 | "version": "1.8.1", 235 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 236 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 237 | }, 238 | "eureka-js-client": { 239 | "version": "4.3.0", 240 | "resolved": "https://registry.npmjs.org/eureka-js-client/-/eureka-js-client-4.3.0.tgz", 241 | "integrity": "sha1-thfLP9REs9Te7dOV/jQrzLPeAk8=", 242 | "requires": { 243 | "async": "2.6.0", 244 | "js-yaml": "3.10.0", 245 | "lodash": "4.17.4", 246 | "request": "2.83.0" 247 | } 248 | }, 249 | "express": { 250 | "version": "4.16.2", 251 | "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", 252 | "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", 253 | "requires": { 254 | "accepts": "1.3.4", 255 | "array-flatten": "1.1.1", 256 | "body-parser": "1.18.2", 257 | "content-disposition": "0.5.2", 258 | "content-type": "1.0.4", 259 | "cookie": "0.3.1", 260 | "cookie-signature": "1.0.6", 261 | "debug": "2.6.9", 262 | "depd": "1.1.1", 263 | "encodeurl": "1.0.1", 264 | "escape-html": "1.0.3", 265 | "etag": "1.8.1", 266 | "finalhandler": "1.1.0", 267 | "fresh": "0.5.2", 268 | "merge-descriptors": "1.0.1", 269 | "methods": "1.1.2", 270 | "on-finished": "2.3.0", 271 | "parseurl": "1.3.2", 272 | "path-to-regexp": "0.1.7", 273 | "proxy-addr": "2.0.2", 274 | "qs": "6.5.1", 275 | "range-parser": "1.2.0", 276 | "safe-buffer": "5.1.1", 277 | "send": "0.16.1", 278 | "serve-static": "1.13.1", 279 | "setprototypeof": "1.1.0", 280 | "statuses": "1.3.1", 281 | "type-is": "1.6.15", 282 | "utils-merge": "1.0.1", 283 | "vary": "1.1.2" 284 | } 285 | }, 286 | "extend": { 287 | "version": "3.0.1", 288 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 289 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" 290 | }, 291 | "extsprintf": { 292 | "version": "1.3.0", 293 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 294 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 295 | }, 296 | "fast-deep-equal": { 297 | "version": "1.0.0", 298 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", 299 | "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" 300 | }, 301 | "fast-json-stable-stringify": { 302 | "version": "2.0.0", 303 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 304 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 305 | }, 306 | "finalhandler": { 307 | "version": "1.1.0", 308 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", 309 | "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", 310 | "requires": { 311 | "debug": "2.6.9", 312 | "encodeurl": "1.0.1", 313 | "escape-html": "1.0.3", 314 | "on-finished": "2.3.0", 315 | "parseurl": "1.3.2", 316 | "statuses": "1.3.1", 317 | "unpipe": "1.0.0" 318 | } 319 | }, 320 | "forever-agent": { 321 | "version": "0.6.1", 322 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 323 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 324 | }, 325 | "form-data": { 326 | "version": "2.3.1", 327 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", 328 | "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", 329 | "requires": { 330 | "asynckit": "0.4.0", 331 | "combined-stream": "1.0.5", 332 | "mime-types": "2.1.17" 333 | } 334 | }, 335 | "forwarded": { 336 | "version": "0.1.2", 337 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 338 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 339 | }, 340 | "fresh": { 341 | "version": "0.5.2", 342 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 343 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 344 | }, 345 | "getpass": { 346 | "version": "0.1.7", 347 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 348 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 349 | "requires": { 350 | "assert-plus": "1.0.0" 351 | } 352 | }, 353 | "har-schema": { 354 | "version": "2.0.0", 355 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 356 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 357 | }, 358 | "har-validator": { 359 | "version": "5.0.3", 360 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", 361 | "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", 362 | "requires": { 363 | "ajv": "5.5.1", 364 | "har-schema": "2.0.0" 365 | } 366 | }, 367 | "hawk": { 368 | "version": "6.0.2", 369 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", 370 | "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", 371 | "requires": { 372 | "boom": "4.3.1", 373 | "cryptiles": "3.1.2", 374 | "hoek": "4.2.0", 375 | "sntp": "2.1.0" 376 | } 377 | }, 378 | "hoek": { 379 | "version": "4.2.0", 380 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", 381 | "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" 382 | }, 383 | "http-errors": { 384 | "version": "1.6.2", 385 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", 386 | "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", 387 | "requires": { 388 | "depd": "1.1.1", 389 | "inherits": "2.0.3", 390 | "setprototypeof": "1.0.3", 391 | "statuses": "1.3.1" 392 | }, 393 | "dependencies": { 394 | "setprototypeof": { 395 | "version": "1.0.3", 396 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", 397 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" 398 | } 399 | } 400 | }, 401 | "http-signature": { 402 | "version": "1.2.0", 403 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 404 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 405 | "requires": { 406 | "assert-plus": "1.0.0", 407 | "jsprim": "1.4.1", 408 | "sshpk": "1.13.1" 409 | } 410 | }, 411 | "iconv-lite": { 412 | "version": "0.4.19", 413 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 414 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" 415 | }, 416 | "inherits": { 417 | "version": "2.0.3", 418 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 419 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 420 | }, 421 | "ipaddr.js": { 422 | "version": "1.5.2", 423 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", 424 | "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" 425 | }, 426 | "is-typedarray": { 427 | "version": "1.0.0", 428 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 429 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 430 | }, 431 | "isstream": { 432 | "version": "0.1.2", 433 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 434 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 435 | }, 436 | "js-yaml": { 437 | "version": "3.10.0", 438 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", 439 | "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", 440 | "requires": { 441 | "argparse": "1.0.9", 442 | "esprima": "4.0.0" 443 | } 444 | }, 445 | "jsbn": { 446 | "version": "0.1.1", 447 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 448 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 449 | "optional": true 450 | }, 451 | "json-schema": { 452 | "version": "0.2.3", 453 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 454 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 455 | }, 456 | "json-schema-traverse": { 457 | "version": "0.3.1", 458 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 459 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" 460 | }, 461 | "json-stringify-safe": { 462 | "version": "5.0.1", 463 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 464 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 465 | }, 466 | "jsprim": { 467 | "version": "1.4.1", 468 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 469 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 470 | "requires": { 471 | "assert-plus": "1.0.0", 472 | "extsprintf": "1.3.0", 473 | "json-schema": "0.2.3", 474 | "verror": "1.10.0" 475 | } 476 | }, 477 | "lodash": { 478 | "version": "4.17.4", 479 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 480 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" 481 | }, 482 | "media-typer": { 483 | "version": "0.3.0", 484 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 485 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 486 | }, 487 | "merge-descriptors": { 488 | "version": "1.0.1", 489 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 490 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 491 | }, 492 | "methods": { 493 | "version": "1.1.2", 494 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 495 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 496 | }, 497 | "mime": { 498 | "version": "1.4.1", 499 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", 500 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" 501 | }, 502 | "mime-db": { 503 | "version": "1.30.0", 504 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", 505 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" 506 | }, 507 | "mime-types": { 508 | "version": "2.1.17", 509 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", 510 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", 511 | "requires": { 512 | "mime-db": "1.30.0" 513 | } 514 | }, 515 | "ms": { 516 | "version": "2.0.0", 517 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 518 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 519 | }, 520 | "negotiator": { 521 | "version": "0.6.1", 522 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 523 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" 524 | }, 525 | "oauth-sign": { 526 | "version": "0.8.2", 527 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 528 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" 529 | }, 530 | "on-finished": { 531 | "version": "2.3.0", 532 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 533 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 534 | "requires": { 535 | "ee-first": "1.1.1" 536 | } 537 | }, 538 | "parseurl": { 539 | "version": "1.3.2", 540 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", 541 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" 542 | }, 543 | "path-to-regexp": { 544 | "version": "0.1.7", 545 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 546 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 547 | }, 548 | "performance-now": { 549 | "version": "2.1.0", 550 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 551 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 552 | }, 553 | "proxy-addr": { 554 | "version": "2.0.2", 555 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", 556 | "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", 557 | "requires": { 558 | "forwarded": "0.1.2", 559 | "ipaddr.js": "1.5.2" 560 | } 561 | }, 562 | "punycode": { 563 | "version": "1.4.1", 564 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 565 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 566 | }, 567 | "qs": { 568 | "version": "6.5.1", 569 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 570 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" 571 | }, 572 | "range-parser": { 573 | "version": "1.2.0", 574 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 575 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" 576 | }, 577 | "raw-body": { 578 | "version": "2.3.2", 579 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", 580 | "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", 581 | "requires": { 582 | "bytes": "3.0.0", 583 | "http-errors": "1.6.2", 584 | "iconv-lite": "0.4.19", 585 | "unpipe": "1.0.0" 586 | } 587 | }, 588 | "request": { 589 | "version": "2.83.0", 590 | "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", 591 | "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", 592 | "requires": { 593 | "aws-sign2": "0.7.0", 594 | "aws4": "1.6.0", 595 | "caseless": "0.12.0", 596 | "combined-stream": "1.0.5", 597 | "extend": "3.0.1", 598 | "forever-agent": "0.6.1", 599 | "form-data": "2.3.1", 600 | "har-validator": "5.0.3", 601 | "hawk": "6.0.2", 602 | "http-signature": "1.2.0", 603 | "is-typedarray": "1.0.0", 604 | "isstream": "0.1.2", 605 | "json-stringify-safe": "5.0.1", 606 | "mime-types": "2.1.17", 607 | "oauth-sign": "0.8.2", 608 | "performance-now": "2.1.0", 609 | "qs": "6.5.1", 610 | "safe-buffer": "5.1.1", 611 | "stringstream": "0.0.5", 612 | "tough-cookie": "2.3.3", 613 | "tunnel-agent": "0.6.0", 614 | "uuid": "3.1.0" 615 | } 616 | }, 617 | "safe-buffer": { 618 | "version": "5.1.1", 619 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 620 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 621 | }, 622 | "send": { 623 | "version": "0.16.1", 624 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", 625 | "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", 626 | "requires": { 627 | "debug": "2.6.9", 628 | "depd": "1.1.1", 629 | "destroy": "1.0.4", 630 | "encodeurl": "1.0.1", 631 | "escape-html": "1.0.3", 632 | "etag": "1.8.1", 633 | "fresh": "0.5.2", 634 | "http-errors": "1.6.2", 635 | "mime": "1.4.1", 636 | "ms": "2.0.0", 637 | "on-finished": "2.3.0", 638 | "range-parser": "1.2.0", 639 | "statuses": "1.3.1" 640 | } 641 | }, 642 | "serve-static": { 643 | "version": "1.13.1", 644 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", 645 | "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", 646 | "requires": { 647 | "encodeurl": "1.0.1", 648 | "escape-html": "1.0.3", 649 | "parseurl": "1.3.2", 650 | "send": "0.16.1" 651 | } 652 | }, 653 | "setprototypeof": { 654 | "version": "1.1.0", 655 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", 656 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" 657 | }, 658 | "sntp": { 659 | "version": "2.1.0", 660 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", 661 | "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", 662 | "requires": { 663 | "hoek": "4.2.0" 664 | } 665 | }, 666 | "sprintf-js": { 667 | "version": "1.0.3", 668 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 669 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" 670 | }, 671 | "sshpk": { 672 | "version": "1.13.1", 673 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", 674 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", 675 | "requires": { 676 | "asn1": "0.2.3", 677 | "assert-plus": "1.0.0", 678 | "bcrypt-pbkdf": "1.0.1", 679 | "dashdash": "1.14.1", 680 | "ecc-jsbn": "0.1.1", 681 | "getpass": "0.1.7", 682 | "jsbn": "0.1.1", 683 | "tweetnacl": "0.14.5" 684 | } 685 | }, 686 | "statuses": { 687 | "version": "1.3.1", 688 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", 689 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" 690 | }, 691 | "stringstream": { 692 | "version": "0.0.5", 693 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 694 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" 695 | }, 696 | "tough-cookie": { 697 | "version": "2.3.3", 698 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", 699 | "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", 700 | "requires": { 701 | "punycode": "1.4.1" 702 | } 703 | }, 704 | "tunnel-agent": { 705 | "version": "0.6.0", 706 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 707 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 708 | "requires": { 709 | "safe-buffer": "5.1.1" 710 | } 711 | }, 712 | "tweetnacl": { 713 | "version": "0.14.5", 714 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 715 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 716 | "optional": true 717 | }, 718 | "type-is": { 719 | "version": "1.6.15", 720 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", 721 | "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", 722 | "requires": { 723 | "media-typer": "0.3.0", 724 | "mime-types": "2.1.17" 725 | } 726 | }, 727 | "unpipe": { 728 | "version": "1.0.0", 729 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 730 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 731 | }, 732 | "utils-merge": { 733 | "version": "1.0.1", 734 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 735 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 736 | }, 737 | "uuid": { 738 | "version": "3.1.0", 739 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 740 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" 741 | }, 742 | "vary": { 743 | "version": "1.1.2", 744 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 745 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 746 | }, 747 | "verror": { 748 | "version": "1.10.0", 749 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 750 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 751 | "requires": { 752 | "assert-plus": "1.0.0", 753 | "core-util-is": "1.0.2", 754 | "extsprintf": "1.3.0" 755 | } 756 | } 757 | } 758 | } 759 | --------------------------------------------------------------------------------