diff --git a/test/com/wentch/redkale/test/sncp/SncpTest.java b/test/com/wentch/redkale/test/sncp/SncpTest.java index d390be714..b77208810 100644 --- a/test/com/wentch/redkale/test/sncp/SncpTest.java +++ b/test/com/wentch/redkale/test/sncp/SncpTest.java @@ -16,6 +16,7 @@ import java.io.*; import java.net.*; import java.util.*; import java.util.concurrent.*; +import java.util.concurrent.atomic.*; import java.util.logging.*; /** @@ -24,16 +25,17 @@ import java.util.logging.*; */ 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 myhost = Utility.localInetAddress().getHostAddress(); + 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 { - ResourceFactory.root().register("", BsonConvert.class, BsonFactory.root().getConvert()); ByteArrayOutputStream out = new ByteArrayOutputStream(); final PrintStream ps = new PrintStream(out); ps.println("handlers = java.util.logging.ConsoleHandler"); @@ -41,35 +43,74 @@ public class SncpTest { ps.println(".level = FINEST"); ps.println("java.util.logging.ConsoleHandler.level = FINEST"); LogManager.getLogManager().readConfiguration(new ByteArrayInputStream(out.toByteArray())); - runServer(); - runServer2(); - runClient(); + ResourceFactory.root().register("", BsonConvert.class, BsonFactory.root().getConvert()); + if (System.getProperty("client") == null) { + 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 { - InetSocketAddress addr = new InetSocketAddress("127.0.0.1", port); + InetSocketAddress addr = new InetSocketAddress(myhost, port); Set set = new LinkedHashSet<>(); set.add(addr); - set.add(new InetSocketAddress("127.0.0.1", port2)); - Transport transport = new Transport("", protocol, WatchFactory.root(), 100, set); - SncpTestService service = Sncp.createRemoteService(serviceName, null, SncpTestService.class, null, new LinkedHashSet<>(), transport); - System.out.println(service); + if (port2 > 0) set.add(new InetSocketAddress(myhost, port2)); + final Transport transport = new Transport("", protocol, WatchFactory.root(), 50, set); + final SncpTestService service = Sncp.createRemoteService(serviceName, null, SncpTestService.class, null, new LinkedHashSet<>(), transport); ResourceFactory.root().inject(service); - SncpTestBean bean = new SncpTestBean(); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 2000; i++) { - sb.append("_").append(i).append("_0123456789"); +// SncpTestBean bean = new SncpTestBean(); +// StringBuilder sb = new StringBuilder(); +// for (int i = 0; i < 2000; i++) { +// 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()); - bean.setContent("hello sncp"); - System.out.println(service.queryResult(bean)); - bean.setContent("xxxxx"); - System.out.println(service.updateBean(bean)); + cld.await(); + System.out.println("---全部运行完毕---"); + System.exit(0); } 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); new Thread() { @Override @@ -77,10 +118,10 @@ public class SncpTest { try { SncpServer server = new SncpServer(protocol); Set set = new LinkedHashSet<>(); - set.add(new InetSocketAddress("127.0.0.1", port2)); - Transport transport = new Transport("", protocol, WatchFactory.root(), 100, set); + if (port2 > 0) set.add(new InetSocketAddress(myhost, port2)); + Transport transport = new Transport("", protocol, WatchFactory.root(), 50, set); List sameTransports = new ArrayList<>(); - sameTransports.add(transport); + if (port2 > 0) sameTransports.add(transport); SncpTestService service = Sncp.createLocalService("", null, SncpTestService.class, addr, new LinkedHashSet<>(), sameTransports, null); ResourceFactory.root().inject(service); 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 { - InetSocketAddress addr = new InetSocketAddress("127.0.0.1", port2); + InetSocketAddress addr = new InetSocketAddress(myhost, port2); final CountDownLatch cdl = new CountDownLatch(1); new Thread() { @Override @@ -108,8 +149,8 @@ public class SncpTest { try { SncpServer server = new SncpServer(protocol); Set set = new LinkedHashSet<>(); - set.add(new InetSocketAddress("127.0.0.1", port)); - Transport transport = new Transport("", protocol, WatchFactory.root(), 100, set); + set.add(new InetSocketAddress(myhost, port)); + Transport transport = new Transport("", protocol, WatchFactory.root(), 50, set); List sameTransports = new ArrayList<>(); sameTransports.add(transport); Service service = Sncp.createLocalService("", null, SncpTestService.class, addr, new LinkedHashSet<>(), sameTransports, null); diff --git a/test/com/wentch/redkale/test/sncp/SncpTestBean.java b/test/com/wentch/redkale/test/sncp/SncpTestBean.java index d8348dbc7..28abb7167 100644 --- a/test/com/wentch/redkale/test/sncp/SncpTestBean.java +++ b/test/com/wentch/redkale/test/sncp/SncpTestBean.java @@ -5,8 +5,10 @@ */ package com.wentch.redkale.test.sncp; +import com.wentch.redkale.convert.bson.*; import com.wentch.redkale.convert.json.*; import com.wentch.redkale.source.*; +import com.wentch.redkale.util.*; /** * @@ -18,6 +20,14 @@ public class SncpTestBean implements FilterBean { 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 public String toString() { return JsonFactory.root().getConvert().convertTo(this);