1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.examples.rest;
18
19 import java.net.*;
20 import java.util.*;
21
22 import org.apache.juneau.microservice.jetty.*;
23 import org.apache.juneau.parser.*;
24 import org.apache.juneau.rest.client.*;
25 import org.apache.juneau.serializer.*;
26
27
28
29
30 public class SamplesMicroservice {
31 static volatile JettyMicroservice microservice;
32 static URI microserviceURI;
33
34
35 public static RestClient DEFAULT_CLIENT;
36 public static RestClient DEFAULT_CLIENT_PLAINTEXT;
37
38
39
40
41
42
43 public synchronized static boolean startMicroservice() {
44 if (microservice != null)
45 return false;
46 try {
47 Locale.setDefault(Locale.US);
48 microservice = JettyMicroservice.create().workingDir("../juneau-examples-rest-jetty").configName("juneau-examples-rest-jetty.cfg").servlet(RootResources.class).build();
49 microserviceURI = microservice.start().getURI();
50 DEFAULT_CLIENT = client().json().build();
51 DEFAULT_CLIENT_PLAINTEXT = client().plainText().build();
52 return true;
53 } catch (Throwable e) {
54
55 e.printStackTrace();
56 System.err.println(e);
57 return false;
58 }
59 }
60
61
62
63
64
65 public static URI getURI() {
66 if (microservice == null)
67 startMicroservice();
68 return microserviceURI;
69 }
70
71
72
73
74 public synchronized static void stopMicroservice() {
75 try {
76 microservice.stop();
77 microservice = null;
78 DEFAULT_CLIENT.closeQuietly();
79 DEFAULT_CLIENT_PLAINTEXT.closeQuietly();
80 } catch (Exception e) {
81 System.err.println(e);
82 }
83 }
84
85
86
87
88 public static RestClient.Builder client() {
89 try {
90 return RestClient.create().rootUrl(microserviceURI);
91 } catch (Exception e) {
92 throw new IllegalStateException(e);
93 }
94 }
95
96
97
98
99 public static RestClient.Builder client(Serializer s, Parser p) {
100 return client().serializer(s).parser(p);
101 }
102
103
104
105
106 public static RestClient.Builder client(Class<? extends Serializer> s, Class<? extends Parser> p) {
107 return client().serializer(s).parser(p);
108 }
109 }