This commit is contained in:
地平线
2015-11-05 10:13:44 +08:00
parent b3d05bdbe9
commit fc8109cc6e
2 changed files with 78 additions and 27 deletions

View File

@@ -16,6 +16,7 @@ import java.io.*;
import java.net.*; import java.net.*;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import java.util.logging.*; import java.util.logging.*;
/** /**
@@ -24,16 +25,17 @@ import java.util.logging.*;
*/ */
public class SncpTest { public class SncpTest {
private static final String protocol = Sncp.DEFAULT_PROTOCOL; private static final String protocol = "TCP";// Sncp.DEFAULT_PROTOCOL;
private static final String serviceName = ""; private static final String serviceName = "";
private static final String myhost = Utility.localInetAddress().getHostAddress();
private static final int port = 4040; private static final int port = 4040;
private static final int port2 = 4240; private static final int port2 = 0; // 4240;
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
ResourceFactory.root().register("", BsonConvert.class, BsonFactory.root().getConvert());
ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayOutputStream out = new ByteArrayOutputStream();
final PrintStream ps = new PrintStream(out); final PrintStream ps = new PrintStream(out);
ps.println("handlers = java.util.logging.ConsoleHandler"); ps.println("handlers = java.util.logging.ConsoleHandler");
@@ -41,35 +43,74 @@ public class SncpTest {
ps.println(".level = FINEST"); ps.println(".level = FINEST");
ps.println("java.util.logging.ConsoleHandler.level = FINEST"); ps.println("java.util.logging.ConsoleHandler.level = FINEST");
LogManager.getLogManager().readConfiguration(new ByteArrayInputStream(out.toByteArray())); LogManager.getLogManager().readConfiguration(new ByteArrayInputStream(out.toByteArray()));
runServer(); ResourceFactory.root().register("", BsonConvert.class, BsonFactory.root().getConvert());
runServer2(); if (System.getProperty("client") == null) {
runClient(); runServer();
if (port2 > 0) runServer2();
}
if (System.getProperty("server") == null) {
runClient();
}
if (System.getProperty("server") != null) {
System.in.read();
}
} }
private static void runClient() throws Exception { private static void runClient() throws Exception {
InetSocketAddress addr = new InetSocketAddress("127.0.0.1", port); InetSocketAddress addr = new InetSocketAddress(myhost, port);
Set<InetSocketAddress> set = new LinkedHashSet<>(); Set<InetSocketAddress> set = new LinkedHashSet<>();
set.add(addr); set.add(addr);
set.add(new InetSocketAddress("127.0.0.1", port2)); if (port2 > 0) set.add(new InetSocketAddress(myhost, port2));
Transport transport = new Transport("", protocol, WatchFactory.root(), 100, set); final Transport transport = new Transport("", protocol, WatchFactory.root(), 50, set);
SncpTestService service = Sncp.createRemoteService(serviceName, null, SncpTestService.class, null, new LinkedHashSet<>(), transport); final SncpTestService service = Sncp.createRemoteService(serviceName, null, SncpTestService.class, null, new LinkedHashSet<>(), transport);
System.out.println(service);
ResourceFactory.root().inject(service); ResourceFactory.root().inject(service);
SncpTestBean bean = new SncpTestBean(); // SncpTestBean bean = new SncpTestBean();
StringBuilder sb = new StringBuilder(); // StringBuilder sb = new StringBuilder();
for (int i = 0; i < 2000; i++) { // for (int i = 0; i < 2000; i++) {
sb.append("_").append(i).append("_0123456789"); // sb.append("_").append(i).append("_0123456789");
// }
// bean.setContent(sb.toString());
// bean.setContent("hello sncp");
final int count = 500;
final CountDownLatch cld = new CountDownLatch(count);
final AtomicInteger ai = new AtomicInteger();
for (int i = 0; i < count; i++) {
final int k = i + 1;
new Thread() {
@Override
public void run() {
try {
Thread.sleep(k);
SncpTestBean bean = new SncpTestBean();
bean.setId(k);
bean.setContent("数据: " + (k < 10 ? "0" : "") + k);
StringBuilder sb = new StringBuilder();
sb.append(k).append("------");
for (int i = 0; i < 1200; i++) {
sb.append("_").append(i).append("_").append(k).append("_0123456789");
}
bean.setContent(sb.toString());
//service.queryResult(bean);
service.updateBean(bean);
}catch(Exception e){
e.printStackTrace();
} finally {
long a = ai.incrementAndGet();
System.out.println("运行了 " + (a == 100 ? "--------------------------------------------------" : "") + a);
cld.countDown();
}
}
}.start();
} }
bean.setContent(sb.toString()); cld.await();
bean.setContent("hello sncp"); System.out.println("---全部运行完毕---");
System.out.println(service.queryResult(bean)); System.exit(0);
bean.setContent("xxxxx");
System.out.println(service.updateBean(bean));
} }
private static void runServer() throws Exception { private static void runServer() throws Exception {
InetSocketAddress addr = new InetSocketAddress("127.0.0.1", port); InetSocketAddress addr = new InetSocketAddress(myhost, port);
final CountDownLatch cdl = new CountDownLatch(1); final CountDownLatch cdl = new CountDownLatch(1);
new Thread() { new Thread() {
@Override @Override
@@ -77,10 +118,10 @@ public class SncpTest {
try { try {
SncpServer server = new SncpServer(protocol); SncpServer server = new SncpServer(protocol);
Set<InetSocketAddress> set = new LinkedHashSet<>(); Set<InetSocketAddress> set = new LinkedHashSet<>();
set.add(new InetSocketAddress("127.0.0.1", port2)); if (port2 > 0) set.add(new InetSocketAddress(myhost, port2));
Transport transport = new Transport("", protocol, WatchFactory.root(), 100, set); Transport transport = new Transport("", protocol, WatchFactory.root(), 50, set);
List<Transport> sameTransports = new ArrayList<>(); List<Transport> sameTransports = new ArrayList<>();
sameTransports.add(transport); if (port2 > 0) sameTransports.add(transport);
SncpTestService service = Sncp.createLocalService("", null, SncpTestService.class, addr, new LinkedHashSet<>(), sameTransports, null); SncpTestService service = Sncp.createLocalService("", null, SncpTestService.class, addr, new LinkedHashSet<>(), sameTransports, null);
ResourceFactory.root().inject(service); ResourceFactory.root().inject(service);
server.addService(new ServiceWrapper(SncpTestService.class, service, "", new ClassFilter.FilterEntry(SncpTestService.class, null))); server.addService(new ServiceWrapper(SncpTestService.class, service, "", new ClassFilter.FilterEntry(SncpTestService.class, null)));
@@ -100,7 +141,7 @@ public class SncpTest {
} }
private static void runServer2() throws Exception { private static void runServer2() throws Exception {
InetSocketAddress addr = new InetSocketAddress("127.0.0.1", port2); InetSocketAddress addr = new InetSocketAddress(myhost, port2);
final CountDownLatch cdl = new CountDownLatch(1); final CountDownLatch cdl = new CountDownLatch(1);
new Thread() { new Thread() {
@Override @Override
@@ -108,8 +149,8 @@ public class SncpTest {
try { try {
SncpServer server = new SncpServer(protocol); SncpServer server = new SncpServer(protocol);
Set<InetSocketAddress> set = new LinkedHashSet<>(); Set<InetSocketAddress> set = new LinkedHashSet<>();
set.add(new InetSocketAddress("127.0.0.1", port)); set.add(new InetSocketAddress(myhost, port));
Transport transport = new Transport("", protocol, WatchFactory.root(), 100, set); Transport transport = new Transport("", protocol, WatchFactory.root(), 50, set);
List<Transport> sameTransports = new ArrayList<>(); List<Transport> sameTransports = new ArrayList<>();
sameTransports.add(transport); sameTransports.add(transport);
Service service = Sncp.createLocalService("", null, SncpTestService.class, addr, new LinkedHashSet<>(), sameTransports, null); Service service = Sncp.createLocalService("", null, SncpTestService.class, addr, new LinkedHashSet<>(), sameTransports, null);

View File

@@ -5,8 +5,10 @@
*/ */
package com.wentch.redkale.test.sncp; package com.wentch.redkale.test.sncp;
import com.wentch.redkale.convert.bson.*;
import com.wentch.redkale.convert.json.*; import com.wentch.redkale.convert.json.*;
import com.wentch.redkale.source.*; import com.wentch.redkale.source.*;
import com.wentch.redkale.util.*;
/** /**
* *
@@ -18,6 +20,14 @@ public class SncpTestBean implements FilterBean {
private String content; private String content;
public static void main(String[] args) throws Exception {
SncpTestBean bean = JsonFactory.root().getConvert().convertFrom(SncpTestBean.class, "{\"content\":\"数据: 01\",\"id\":1}");
System.out.println(bean);
byte[] bs = BsonFactory.root().getConvert().convertTo(bean);
Utility.println("---------", bs);
System.out.println(BsonFactory.root().getConvert().convertFrom(SncpTestBean.class, bs).toString());
}
@Override @Override
public String toString() { public String toString() {
return JsonFactory.root().getConvert().convertTo(this); return JsonFactory.root().getConvert().convertTo(this);