Skip to content

Commit ef313b3

Browse files
committed
send-target-name
1 parent 971902f commit ef313b3

File tree

12 files changed

+225
-76
lines changed

12 files changed

+225
-76
lines changed

micro-application-register/src/main/java/com/aol/micro/server/application/registry/ApplicationRegisterImpl.java

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,54 @@
22

33
import java.net.InetAddress;
44
import java.net.UnknownHostException;
5+
import java.util.Optional;
56
import java.util.stream.Collectors;
67
import java.util.stream.Stream;
78

9+
import lombok.Getter;
10+
811
import org.slf4j.Logger;
912
import org.slf4j.LoggerFactory;
13+
import org.springframework.beans.factory.annotation.Autowired;
1014
import org.springframework.beans.factory.annotation.Value;
1115
import org.springframework.stereotype.Component;
1216

1317
import com.aol.cyclops.invokedynamic.ExceptionSoftener;
1418
import com.aol.micro.server.servers.ApplicationRegister;
1519
import com.aol.micro.server.servers.model.ServerData;
1620

17-
import lombok.Getter;
18-
1921
@Component
2022
public class ApplicationRegisterImpl implements ApplicationRegister {
2123
private final Logger logger = LoggerFactory.getLogger(getClass());
2224
@Getter
2325
private volatile Application application;
2426

25-
@Value("${host.address:#null}")
26-
private String customHostname;
2727

28-
public ApplicationRegisterImpl() {
28+
private final String customHostname;
29+
private final String targetEndpoint;
30+
31+
@Autowired
32+
public ApplicationRegisterImpl(@Value("${host.address:#{null}}")String customHostname,
33+
@Value("${target.endpoint:#{null}}")String targetEndpoint){
34+
35+
this.customHostname=customHostname;
36+
this.targetEndpoint = targetEndpoint;
2937

3038
}
39+
40+
public ApplicationRegisterImpl() {
41+
this(null,null);
42+
}
3143

3244
@Override
3345
public void register(ServerData[] data) {
34-
String hostname;
46+
3547
try {
36-
hostname = customHostname == null ? InetAddress.getLocalHost().getHostName() : customHostname;
48+
final String hostname = Optional.ofNullable(customHostname).orElse( InetAddress.getLocalHost().getHostName());
3749
application = new Application(Stream
3850
.of(data)
3951
.map(next -> new RegisterEntry(next.getPort(), hostname, next.getModule().getContext(), next
40-
.getModule().getContext(), null)).collect(Collectors.toList()));
52+
.getModule().getContext(), null,targetEndpoint)).collect(Collectors.toList()));
4153
logger.info("Registered application {} ", application);
4254
} catch (UnknownHostException e) {
4355
throw ExceptionSoftener.throwSoftenedException(e);

micro-application-register/src/main/java/com/aol/micro/server/application/registry/RegisterEntry.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import javax.xml.bind.annotation.XmlType;
1010

1111
import lombok.AccessLevel;
12+
import lombok.Builder;
1213
import lombok.Getter;
1314
import lombok.experimental.FieldDefaults;
1415
import lombok.experimental.Wither;
@@ -19,6 +20,7 @@
1920
@XmlType(name = "")
2021
@Getter
2122
@Wither
23+
@Builder
2224
public class RegisterEntry {
2325

2426
int port;
@@ -27,21 +29,25 @@ public class RegisterEntry {
2729
String context;
2830
Date time;
2931
String uuid;
32+
String target;
3033

3134
public RegisterEntry() {
32-
this(-1, null, null, null, null, null);
35+
this(-1, null, null, null, null, null, null);
3336
}
3437

35-
public RegisterEntry(int port, String hostname, String module, String context, Date time, String uuid) {
38+
public RegisterEntry(int port, String hostname, String module, String context, Date time,
39+
String uuid, String target) {
3640
this.port = port;
3741
this.hostname = hostname;
3842
this.module = module;
3943
this.context = context;
4044
this.time = time;
4145
this.uuid = uuid;
46+
this.target = target;
4247
}
4348

44-
public RegisterEntry(int port, String hostname, String module, String context, Date time) {
45-
this(port, hostname, module, context, time, UUID.randomUUID().toString());
49+
public RegisterEntry(int port, String hostname, String module, String context,
50+
Date time,String target) {
51+
this(port, hostname, module, context, time, UUID.randomUUID().toString(),target);
4652
}
4753
}

micro-application-register/src/test/java/app/registry/com/aol/micro/server/RegistryAppRunner.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package app.registry.com.aol.micro.server;
22

33
import static org.hamcrest.CoreMatchers.containsString;
4-
import static org.hamcrest.CoreMatchers.is;
4+
import static org.hamcrest.CoreMatchers.*;
55
import static org.junit.Assert.assertThat;
66

77
import java.util.Date;
@@ -47,12 +47,13 @@ public void runAppAndBasicTest() throws InterruptedException, ExecutionException
4747
Thread.sleep(1000);
4848
assertThat(rest.getJson("http://localhost:8080/registry-app/service-registry/list"),containsString("[{\"port\":8080,"));
4949

50-
sendPing(new RegisterEntry(8081,"use-ip","hello","world", new Date()));
50+
sendPing(new RegisterEntry(8081,"use-ip","hello","world", new Date(),"my-target"));
5151
Thread.sleep(1000);
5252
System.out.println(rest.getJson("http://localhost:8080/registry-app/service-registry/list"));
5353
assertThat(rest.getJson("http://localhost:8080/registry-app/service-registry/list"),containsString("[{\"port\":8081,"));
54-
55-
54+
assertThat(rest.getJson("http://localhost:8080/registry-app/service-registry/list"),containsString("\"target\":\"my-target\""));
55+
assertThat(rest.getJson("http://localhost:8080/registry-app/service-registry/list"),not(containsString("\"hostname\":\"test-host\"")));
56+
5657
}
5758

5859
private void sendPing(RegisterEntry entry) {

micro-application-register/src/test/java/app/registry/com/aol/micro/server/RegistryResource.java

Lines changed: 0 additions & 56 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package app.registry.config.com.aol.micro.server;
2+
3+
import static org.hamcrest.CoreMatchers.containsString;
4+
import static org.hamcrest.CoreMatchers.is;
5+
import static org.junit.Assert.assertThat;
6+
7+
import java.util.Date;
8+
import java.util.concurrent.ExecutionException;
9+
10+
import org.junit.After;
11+
import org.junit.Before;
12+
import org.junit.Test;
13+
14+
import com.aol.micro.server.MicroserverApp;
15+
import com.aol.micro.server.application.registry.RegisterEntry;
16+
import com.aol.micro.server.config.Microserver;
17+
import com.aol.micro.server.rest.client.nio.AsyncRestClient;
18+
import com.aol.micro.server.rest.jackson.JacksonUtil;
19+
import com.aol.micro.server.testing.RestAgent;
20+
21+
@Microserver(properties={"service.registry.url","http://localhost:8080/registry-app",
22+
"host.address","test-host"})
23+
public class RegistryAppRunner {
24+
25+
26+
RestAgent rest = new RestAgent();
27+
private final AsyncRestClient restAsync = new AsyncRestClient(100,2000);
28+
MicroserverApp server;
29+
@Before
30+
public void startServer(){
31+
32+
server = new MicroserverApp( ()-> "registry-app");
33+
server.start();
34+
35+
}
36+
37+
@After
38+
public void stopServer(){
39+
server.stop();
40+
}
41+
42+
@Test
43+
public void runAppAndBasicTest() throws InterruptedException, ExecutionException{
44+
45+
Thread.sleep(1000);
46+
47+
assertThat(rest.post("http://localhost:8080/registry-app/service-registry/schedule"),is("{\"status\":\"success\"}"));
48+
Thread.sleep(1000);
49+
assertThat(rest.getJson("http://localhost:8080/registry-app/service-registry/list"),containsString("[{\"port\":8080,"));
50+
51+
sendPing(new RegisterEntry(8081,"use-ip","hello","world", new Date(),"my-target"));
52+
Thread.sleep(1000);
53+
System.out.println(rest.getJson("http://localhost:8080/registry-app/service-registry/list"));
54+
assertThat(rest.getJson("http://localhost:8080/registry-app/service-registry/list"),containsString("[{\"port\":8081,"));
55+
assertThat(rest.getJson("http://localhost:8080/registry-app/service-registry/list"),containsString("\"hostname\":\"test-host\""));
56+
57+
}
58+
59+
private void sendPing(RegisterEntry entry) {
60+
61+
try {
62+
63+
restAsync.post("http://localhost:8080/registry-app/service-registry/register", JacksonUtil.serializeToJson(entry)).join();
64+
} catch (Exception e) {
65+
66+
}
67+
}
68+
69+
70+
71+
72+
}

micro-application-register/src/test/java/com/aol/micro/server/application/registry/CleanerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void setUp() throws Exception {
3131
finder = new Finder(registerConfig);
3232
cleaner = new Cleaner(registerConfig,1);
3333

34-
entry= new RegisterEntry(8080,"host","module","context",new Date());
34+
entry= new RegisterEntry(8080,"host","module","context",new Date(),null);
3535

3636
}
3737

micro-application-register/src/test/java/com/aol/micro/server/application/registry/FinderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void setUp() throws Exception {
3030
writer = new Register(registerConfig);
3131
finder = new Finder(registerConfig);
3232

33-
entry= new RegisterEntry(8080,"host","module","context",new Date());
33+
entry= new RegisterEntry(8080,"host","module","context",new Date(),null);
3434
}
3535

3636
@Test

micro-application-register/src/test/java/com/aol/micro/server/application/registry/RegisterEntryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class RegisterEntryTest {
1616

1717
@Before
1818
public void setUp() throws Exception {
19-
entry = new RegisterEntry(8080, "hostname", "name", "context", new Date());
19+
entry = new RegisterEntry(8080, "hostname", "name", "context", new Date(),null);
2020
}
2121

2222
@Test

micro-application-register/src/test/java/com/aol/micro/server/application/registry/WriterTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void setUp() throws Exception {
2323
new File(System.getProperty("java.io.tmpdir"),"service-reg-writer").mkdirs();
2424
writer = new Register(new RegisterConfig(new File(System.getProperty("java.io.tmpdir"),"service-reg-writer").getAbsolutePath()));
2525

26-
entry= new RegisterEntry(8080,"host","module","context",new Date());
26+
entry= new RegisterEntry(8080,"host","module","context",new Date(),null);
2727
}
2828

2929
@Test
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package app.simple.com.aol.micro.server;
2+
3+
import java.util.Arrays;
4+
5+
import org.glassfish.jersey.media.multipart.MultiPartFeature;
6+
7+
import com.aol.micro.server.MicroserverApp;
8+
import com.aol.micro.server.module.ConfigurableModule;
9+
10+
public class SimpleApp {
11+
12+
public static void main(String[] args){
13+
14+
new MicroserverApp(()-> "simple-app").run();
15+
}
16+
17+
18+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package app.simple.com.aol.micro.server;
2+
3+
4+
import static org.hamcrest.CoreMatchers.is;
5+
import static org.junit.Assert.assertThat;
6+
7+
import java.util.Arrays;
8+
import java.util.concurrent.ExecutionException;
9+
10+
import org.glassfish.jersey.media.multipart.MultiPartFeature;
11+
import org.junit.After;
12+
import org.junit.Before;
13+
import org.junit.Test;
14+
15+
import com.aol.micro.server.MicroserverApp;
16+
import com.aol.micro.server.config.Microserver;
17+
import com.aol.micro.server.ip.tracker.QueryIPRetriever;
18+
import com.aol.micro.server.module.ConfigurableModule;
19+
import com.aol.micro.server.testing.RestAgent;
20+
21+
@Microserver
22+
public class SimpleRunnerTest {
23+
24+
RestAgent rest = new RestAgent();
25+
26+
MicroserverApp server;
27+
@Before
28+
public void startServer(){
29+
server = new MicroserverApp(ConfigurableModule
30+
.builder()
31+
.context("simple-app")
32+
.defaultResources(Arrays.asList(MultiPartFeature.class))
33+
.build());
34+
35+
server.start();
36+
37+
}
38+
39+
@After
40+
public void stopServer(){
41+
server.stop();
42+
}
43+
44+
@Test
45+
public void runAppAndBasicTest() throws InterruptedException, ExecutionException{
46+
47+
48+
49+
assertThat(rest.get("http://localhost:8080/simple-app/status/ping"),is("127.0.0.1"));
50+
51+
52+
}
53+
54+
55+
56+
}

0 commit comments

Comments
 (0)